scrapy 2.3 處理不同的響應(yīng)格式

2021-06-17 11:56 更新

一旦對(duì)所需數(shù)據(jù)進(jìn)行響應(yīng),如何從中提取所需數(shù)據(jù)取決于響應(yīng)類型:

  • 如果響應(yīng)是HTML或XML,請(qǐng)使用 selectors 像往常一樣。
  • 如果響應(yīng)是json,則使用 ?json.loads()? 從中加載所需數(shù)據(jù) ?response.text? ::
data = json.loads(response.text)

如果所需數(shù)據(jù)位于嵌入在JSON數(shù)據(jù)中的HTML或XML代碼內(nèi),則可以將該HTML或XML代碼加載到 ?Selector? 然后 use it 和往常一樣:

selector = Selector(data['html'])
  • 如果響應(yīng)是javascript,或HTML ?<script/>? 包含所需數(shù)據(jù)的元素,請(qǐng)參見(jiàn) 分析javascript代碼 .
  • 如果響應(yīng)是css,請(qǐng)使用 regular expression 從中提取所需數(shù)據(jù) ?response.text? .
  • 如果響應(yīng)是基于圖像的圖像或其他格式(例如PDF),則從 ?response.body? 并使用OCR解決方案將所需數(shù)據(jù)提取為文本。例如,您可以使用 pytesseract. 要從PDF中讀取表格, tabula-py 可能是更好的選擇。
  • 如果響應(yīng)是SVG,或者帶有包含所需數(shù)據(jù)的嵌入式SVG的HTML,則可以使用 selectors ,因?yàn)镾VG是基于XML的。否則,可能需要將SVG代碼轉(zhuǎn)換為柵格圖像,并且 handle that raster image .


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)