1

我正在解析网页,我想<img src>通过找到<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 

尽管您应该尽可能使用 ID 选择器#image,而不是类选择器,.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 回答