0

RubyとNokogiriを使用してHTMLドキュメントを解析しています。事前にはわかりませんが、display: nonestyle属性を持つCSSクラスに一致するすべてのノードを選択したいと思います。

例:

<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はスタイルを計算しません。そのためのブラウザが必要です。Watir-Webdriverを使用すると、次のことができます。

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 に答える