【问题标题】:Relative XPath in scrapy selectorscrapy 选择器中的相对 XPath
【发布时间】:2017-02-06 11:16:26
【问题描述】:

我正在尝试使用 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()

EDIT2:我用单个 xpath 解决了问题:

response.xpath(u"//*[@class = 'ARLabel TextBold' and contains(text(), 'Comissões a que pertence')]/following-sibling::*//span/text()").extract()

【问题讨论】:

  • 但是node 这里是text() 对象吗?你不应该再上一级吗?
  • @WillemVanOnsem,是的,你是对的。我刚刚删除了 text()

标签: python xpath web-scraping scrapy


【解决方案1】:

你可以使用这个 Xpath:

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

编辑(获取表格):

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

如果这解决了您的问题,请标记回答

【讨论】:

  • 我能找到这个节点。我的问题是使用节点中的相对 XPath 查找表内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
  • 2016-03-12
  • 1970-01-01
  • 1970-01-01
  • 2020-01-06
  • 1970-01-01
相关资源
最近更新 更多