我的 scrapy 项目的结果如下所示:
<div class="news_li">...</div>
<div class="news_li">...</div>
<div class="news_li">...</div>
...
<div class="news_li">...</div>
每个“news_li”类如下所示:
<div class="news_li">
<div class="a">
<a href="aaa">
<div class="a1"></div>
</a>
</div>
<a href="xxx">
<div class="b">
<div class="b1"></div>
<div class="b2"></div>
<div class="b3"></div>
</div>
</a>
</div>
我试图通过以下命令在 scrapy shell 中一次提取一个信息:
response.xpath("//div[@class='news_li']")[0].xpath("//div[@class='a1']").extract()
response.xpath("//div[@class='news_li ']/descendant::div[@class='a1']").extract()
但是这些命令返回我所有其他“news_li”类中的所有“a1”类
我有两个问题:
如何一次获取一个子 div 信息。
我如何获得<a href="aaa"> </a> and <a href="xxx"> </a>
分别地? (区别在于第一个是包裹在父 div 中,第二个是单独的。)
非常非常感谢。
编辑:具体来说,如何提取取决于父/根节点的信息?我抬头看XPath 轴 https://www.w3schools.com/xml/xpath_axes.asp我尝试使用“后代”,但它不起作用。
您可以尝试以下方法
response.xpath("(//div[@class='news_li'])[0]").xpath("//div[@class='a1']").extract()
直接在 XPath 中使用 [0]。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)