机械化使用2次搜索刮刮?

时间:2011-11-21 06:21:01

标签: ruby mechanize

我正在使用Mechanize试图获取下面的结果来抓取博客。主要是在将我的思想转化为代码逻辑时遇到麻烦。我假设我需要结合搜索子句并遍历html并在找到匹配时打印出来。使用Rails和任何建议的新手将是有帮助的。

期望的结果:

  • first_title
    • first_image_url
    • second_image_url
  • second_title
    • first_image_url
    • second_image_url

代码:

require 'rubygems'
require 'mechanize'

url = 'http://blog.something.com/'
mech = Mechanize.new
page = mech.get(url)

page.search('h2').each do |h2|
    puts h2.inner_text
end

imgs = page.search('img[src]').map{|src| src['src']}
puts imgs

代码权利当然会产生:

  • first_title
  • second_title
  • third_title
  • ...
  • first_image_url
  • second_image_url
  • first_image_url
  • ...

1 个答案:

答案 0 :(得分:1)

假设图像是h2的后代,你可以这样做:

page.search('h2').each do |h2|
  puts h2.inner_text
  h2.css('img').each do |img|
    puts img['src']
  end
end