我正在解析网页,我希望通过找到<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
有什么想法吗?
答案 0 :(得分: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
。它速度非常快。
答案 1 :(得分: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