scrapy 2.3 構(gòu)造選擇器

2021-06-09 10:07 更新

響應(yīng)對象公開 ?Selector? 實(shí)例對 ?.selector? 屬性:

>>> response.selector.xpath('//span/text()').get()
'good'

使用xpath和css查詢響應(yīng)非常常見,因此響應(yīng)中還包含兩個(gè)快捷方式: ?response.xpath()? 和 ?response.css()? :

>>> response.xpath('//span/text()').get()
'good'
>>> response.css('span::text').get()
'good'

Scrapy選擇器是 Selector 通過傳遞 TextResponse 對象或標(biāo)記作為字符串(在 text 爭論)。

通常不需要手動(dòng)構(gòu)造垃圾選擇器: response 對象在spider回調(diào)中可用,因此在大多數(shù)情況下使用它更方便 response.css() 和 response.xpath() 捷徑。通過使用 response.selector 或者這些快捷方式之一,您還可以確保響應(yīng)主體只解析一次。

但如果需要,可以使用 Selector 直接。從文本構(gòu)建:

>>> from scrapy.selector import Selector
>>> body = '<html><body><span>good</span></body></html>'
>>> Selector(text=body).xpath('//span/text()').get()
'good'

從響應(yīng)構(gòu)造- HtmlResponse 是其中之一 TextResponse 子類:

>>> from scrapy.selector import Selector
>>> from scrapy.http import HtmlResponse
>>> response = HtmlResponse(url='http://example.com', body=body)
>>> Selector(response=response).xpath('//span/text()').get()
'good'

Selector 根據(jù)輸入類型自動(dòng)選擇最佳的解析規(guī)則(XML對HTML)。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號