首页 > 解决方案 > 如果某些标签没有属性,嵌套的 .xpath('@attribute') 会给出空结果

问题描述

我正在使用 scrapy 抓取网站。有一个 div 列表,有些是不显示,有些是显示块。我只想从显示块的 div 中获取数据。但我无法从 div 中获取样式属性。我还检查了关于stackoverflow的解决方案,即

response.xpath("//div").xpath("@style").extract()

这给了我一个输出中的空白列表。它没有获取样式属性。或者我可以使用scrapy获取原始HTML,然后在漂亮的汤的帮助下从div中获取样式属性?或者,如果我可以得到字符串中的原始 html,那也会很有帮助。我想要的只是其中的样式属性。

示例 html:-

<div class="asd">div content need to extract</div>

<div class="asd" style="display:none">no need to extract</div>

标签: pythonxpathscrapy

解决方案


在我看来,你xpath已经关闭了,试试这个:

response.xpath("//div/@style").extract()

或者:

response.xpath("//div").xpath("./@style").extract()
# notice the relevant path here^^

推荐阅读