我正在使用Ruby和Nokogiri来解析HTML文档,我想选择与CSS类匹配的所有节点,我事先不知道,但具有display: none
样式属性。
例:
<html>
<body>
<p class="visibleTopics">Visible Topic Content</p>
<p class="invisibleTopics">Invisible Topic Content</p>
</body
</html>
在其他文件中,它被定义:
.invisibleTopic {
display: none
}
我想通过样式display: none
选择具有invisibleTopics
内容的节点。有什么建议吗?
>Nokogiri 不计算样式。为此,您需要一个浏览器。使用Watir-Webdriver,您可以做到:
browser.ps.reject{|p| p.visible?}
不要查找 CSS 属性,而是在标记中查找 CSS 类:
require 'nokogiri'
html = <<EOT
<html>
<body>
<p class="visibleTopics">Visible Topic Content</p>
<p class="invisibleTopics">Invisible Topic Content</p>
</body
</html>
EOT
doc = Nokogiri::HTML(html)
doc.search('.invisibleTopics').each do |n|
puts n.text
end
运行时,输出:
Invisible Topic Content