【发布时间】:2014-12-26 15:23:36
【问题描述】:
如何从 Python 中的某个 HTML 节点获取仅可见文本?
假设我有一个这样的节点:
<span>
<style>.vAnH{display:none}.vsP6{display:inline}</style>
<span class="vAnH">34</span>
<span />
<span style="display: inline">111</span>
<span style="display:none">120</span>
<span class="vAnH">120</span>
<div style="display:none">120</div>
<span class="78">.</span>
<span class="vAnH">100</span>
<div style="display:none">100</div>
161
<span style="display: inline">.</span>
<span class="174">126</span>
<span class="vAnH">159</span>
<div style="display:none">159</div>
<span />
<span class="vsP6">.</span>
<span style="display:none">5</span>
<span class="vAnH">5</span>
<div style="display:none">5</div>
<span style="display:none">73</span>
<span class="vAnH">73</span>
<div style="display:none">73</div>
<span class="221">98</span>
<span style="display:none">194</span>
<div style="display:none">194</div>
</span>
是否有任何第三方库可以做到这一点,还是我应该手动解析它?
【问题讨论】:
-
@BrtH 我已经在使用它了,但我没有看到任何解决方案只在此处获取可见文本
-
好的。我认为将 find_all 与过滤器 function 结合使用是可能的。
-
没有独立的 HTML 解析器或 XPath 引擎能够为您应用 CSS 规则。您可能必须使用无头浏览器(即 selenium)来执行此类操作。
-
(可选地编写逻辑来过滤显示:自己没有,是的)
标签: python html html-parsing