0

我正在使用 Ruby 和 Nokogiri 来解析 HTML 文档,并且我想选择与 CSS 类匹配的所有节点,我事先并不知道,但有display: nonestyle 属性。

例子:

<html>
  <body>
    <p class="visibleTopics">Visible Topic Content</p>
    <p class="invisibleTopics">Invisible Topic Content</p>    
  </body
</html>

在其他文件中定义:

.invisibleTopic {
    display: none
} 

我想invisibleTopics按其样式选择具有内容的节点display: none。有什么建议么?

4

2 回答 2

2

Nokogiri doesn't compute styles. You need a browser for that. With Watir-Webdriver you would do:

browser.ps.reject{|p| p.visible?}
于 2012-04-22T05:11:19.920 回答
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
于 2012-04-21T21:56:42.030 回答