scrapy 剪贴选择器中的相对XPath

zfycwa2u  于 2023-03-12  发布在  其他
关注(0)|答案(2)|浏览(158)

我尝试使用Scrapy从here中提取表“Comissões a que pertence / pertenceu”中的信息。
由于表的数量可以改变(并且我想提取几个等价页面的信息),所以我首先使用查找相关部分

for node in response.xpath('//*[@class = "ARLabel TextBold"]'):
    texto = node.extract()
    if u'Comissões a que pertence' in texto:
        break

然后我试着通过以下方式找到所需信息的一部分:

node.xpath('.//*[@class = "ARTabResultadosLinhaImpar"]')

但是导致空列表。
编辑:已删除/text()

mnemlml8

mnemlml81#

您可以使用此Xpath:

//*[@class = "ARLabel TextBold" and contains(text(), 'Comissões a que pertence')]

编辑(获取表格):

//table[@title='Tabela com as comissões a que pertence / pertenceu']

如果这解决了您的问题,Mark会回答

798qvoo8

798qvoo82#

可以使用./而不是// see https://devhints.io/xpath来完成与所选节点的相对xpath。因此,您几乎就到了那里。而不是node.xpath('.//*[@class = "ARTabResultadosLinhaImpar"]')
应该是

node.xpath('./*[@class = "ARTabResultadosLinhaImpar"]')

相关问题