scrapy 2.3 使用相對(duì)路徑

2021-06-03 13:52 更新

請(qǐng)記住,如果要嵌套選擇器并使用以開頭的xpath ?/? ,該xpath對(duì)文檔是絕對(duì)的,而不是相對(duì)于 ?Selector? 你是從打電話來的。

例如,假設(shè)您希望提取所有 ?<p>? 內(nèi)部元素 ?<div>? 元素。首先,你會(huì)得到所有 ?<div>? 元素:

>>> divs = response.xpath('//div')

首先,您可能會(huì)嘗試使用以下方法,這是錯(cuò)誤的,因?yàn)樗鼘?shí)際上提取了所有 ?<p>? 文檔中的元素,而不僅僅是其中的元素 ?<div>? 元素:

>>> for p in divs.xpath('//p'):  # this is wrong - gets all <p> from the whole document
...     print(p.get())

這是正確的方法(注意在 ?.//p? XPath):

>>> for p in divs.xpath('.//p'):  # extracts all <p> inside
...     print(p.get())

另一個(gè)常見的情況是提取所有直接 ?<p>? 兒童:

>>> for p in divs.xpath('p'):
...     print(p.get())

有關(guān)相對(duì)路徑的更多詳細(xì)信息,請(qǐng)參見 Location Paths XPath規(guī)范中的節(jié)。

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)