我正在使用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
}
我想按其样式invisibleTopics
选择display: none
内容的节点。有什么建议吗?
答案 0 :(得分:2)
Nokogiri没有计算风格。你需要一个浏览器。使用Watir-Webdriver,您可以:
browser.ps.reject{|p| p.visible?}
答案 1 :(得分:0)
不要查找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