1

<img src>Web ページを解析していて、を見つけてからリンクを取得したいと考えてい<div id="image">ます。

Nokogiri でこれを行うにはどうすればよいですか? 子ノードをウォークスルーしようとしましたが、失敗します。

<div id="image" class="image textbox ">
  <div class="">
    <img src="img.jpg" alt="" original-title="">
  </div>
</div>

これは私のコードです:

doc = Nokogiri::HTML(open("site.com"))

doc.css("div.image").each do |node|

    node.children().each do |c|

    puts c.attr("src")
    end     

end 

何か案は?

4

2 に答える 2

0

ここに素晴らしいリソースがあります: http://ruby.bastardsbook.com/chapters/html-parsing/

例を少し変更すると、次のようになります。

doc = Nokogiri::HTML(open("site.com"))

doc.css("div.image img").each do |img|

    puts img.attr("src")

end 

#imageただし、可能であれば、クラス セレクターではなくID セレクター を使用する必要があります.image。それは非常に高速です。

于 2013-04-03T16:22:19.143 に答える
0

これを試して、うまくいくかどうか教えてください

require 'nokogiri'

source = <<-HTML
 <div id="image" class="image textbox ">
   <div class="">
     <img src="img.jpg" alt="" original-title="">
   </div>
 </div>
HTML

doc = Nokogiri::HTML(source)

doc.css('div#image > div > img').each do |image|
  puts image.attr('src')
end

出力:

img.jpg
于 2013-04-03T16:22:51.167 に答える