Python 将xpath应用于xpath操作的结果
我可以以“嵌套”的方式应用Xpath吗? 我尝试了下面的解决方案,我希望第一行返回单个Python 将xpath应用于xpath操作的结果,python,xpath,scrapy,Python,Xpath,Scrapy,我可以以“嵌套”的方式应用Xpath吗? 我尝试了下面的解决方案,我希望第一行返回单个元素,然后通过应用第二个xpath表达式从中提取其链接。然而,我似乎做错了什么,第2行仍然返回第一个全局找到的a,而不是在我的中 aaa = response.xpath('//ul/li[@class="navitem")]') bbb = aaa.xpath('//a/@href').extract() 您可以使用: aaa = response.xpath('//ul/li[@class="navit
元素,然后通过应用第二个xpath表达式从中提取其链接。然而,我似乎做错了什么,第2行仍然返回第一个全局找到的a,而不是在我的
中
aaa = response.xpath('//ul/li[@class="navitem")]')
bbb = aaa.xpath('//a/@href').extract()
您可以使用:
aaa = response.xpath('//ul/li[@class="navitem")]')
bbb = aaa[0].xpath('.//a/@href').extract()
注意第二个XPath中的句点
。这将选择所有锚元素的@href
属性,这些锚元素是具有class=“navitem”
的li
元素的后代。如果没有句点
,表达式aaa[0].xpath('//a/@href').extract()
将从整个文档中的所有锚定标记返回@href
属性。您看过aaa吗?它应该是一个列表。在本例中,我认为一个xpath'//ul/li[@class=“navitem”)][1]//a'
也可以使用。我认为它应该是aaa[0]。。。。可能值得强调的是,如果没有前导点,OP的xpath将搜索整个文档。谢谢,我愚蠢地回答了这个问题,没有测试我的解决方案,因为我知道缺少了句点!