我正在用scrapy编写一个spider,我发现有些项目是css规则不可见的,但是,我只想选择可见的那些。在
但是xpath对于那些直接编写样式的<span style="display:none">
是可以的,而对于那些作为css规则编写的<style>.pigf{display:none}</style>
则不可以。在
看起来我应该呈现css,这样我就可以正确地过滤掉不可见的项目,但是我如何呈现它呢?有没有更简单的解决办法?在
html示例:
<span>
<style>
.pigf{display:none}.n8T-{display:inline}.pGrH{display:none}.XUYD{display:inline}.jdKj{display:none}.r7fk{display:inline}.pkO2{display:none}.EzIC{display:inline}
</style>
<span class="55">
27
</span>
<div style="display:none">
36
</div>
<span style="display:none">
174
</span>
<span class="pkO2">
174
</span>
<span>
</span>
.
<span style="display:none">
10
</span>
<span class="pkO2">
10
</span>
<div style="display:none">
10
</div>
<span style="display:none">
49
</span>
<span class="jdKj">
49
</span>
<span style="display:none">
84
</span>
<span>
</span>
<span class="n8T-">
115
</span>
<span style="display:none">
129
</span>
<div style="display:none">
129
</div>
<div style="display:none">
143
</div>
<span style="display:none">
151
</span>
<div style="display:none">
169
</div>
<span>
</span>
.
<span class="14">
75
</span>
<span class="XUYD">
.
</span>
<div style="display:none">
23
</div>
<span style="display:none">
79
</span>
<span style="display: inline">
114
</span>
</span>
为了使事情变得可靠,您需要一些东西来呈现HTML—理想情况下是一个真正的浏览器。研究一下您可以用来自动化浏览器的^{} 包。请注意,浏览器也可以是无头的,比如
PhantomJS
。在selenium
很容易distinguish visible and invisible elements。有一个相关的is_displayed()
方法可以用来检查可见性。另外,如果您要获得元素的文本,根据specification,它将只返回文本的可见部分。在您也可以在^{} 的帮助下在^{} 中呈现页面。示例用法可以在here中找到。在
相关问题 更多 >
编程相关推荐