我可以以“嵌套”的方式应用Xpath吗?
我试过下面的解决方案,我期待第一行返回一个<li>
元素,然后我可以通过应用第二个xpath表达式来提取它的链接。但是我似乎做错了,第二行仍然首先返回全局,而不是我的<li>
。
aaa = response.xpath('//ul/li[@class="navitem")]')
bbb = aaa.xpath('//a/@href').extract()
答案 0 :(得分:3)
您可以使用:
aaa = response.xpath('//ul/li[@class="navitem")]')
bbb = aaa[0].xpath('.//a/@href').extract()
注意第二个XPath中的句点.
。这将选择所有锚元素的@href
属性,这些元素是li
元素的后代class="navitem"
。如果没有句点.
,则表达式aaa[0].xpath('//a/@href').extract()
将从整个文档中的所有锚标记返回@href
属性。