scrapy 2.3 xpath表達式中的變量

2021-06-03 14:41 更新

xpath允許您引用xpath表達式中的變量,使用 ?$somevariable? 語法。這與SQL世界中的參數化查詢或準備好的語句有點類似,在SQL世界中,將查詢中的某些參數替換為諸如 ??? ,然后用查詢傳遞的值替換。

下面是一個基于元素“id”屬性值匹配元素的示例,而不必對其進行硬編碼(如前所示):

>>> # `$val` used in the expression, a `val` argument needs to be passed
>>> response.xpath('//div[@id=$val]/a/text()', val='images').get()
'Name: My image 1 '

下面是另一個示例,用于查找 ?<div>? 包含五個的標簽 ?<a>? 孩子們(在這里我們傳遞價值 ?5? 整數形式):

>>> response.xpath('//div[count(a)=$cnt]/@id', cnt=5).get()
'images'

調用時,所有變量引用都必須具有綁定值 ?.xpath()? (否則你會得到 ?ValueError: XPath error:? 例外)。這是通過根據需要傳遞盡可能多的命名參數來實現的。

parsel _為scrappy選擇器供電的庫提供了更多的細節(jié)和示例 XPath variables .

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號