我想抓取一个网站,但它只停留在我提供机械化的网址上,并且它不会进行递归抓取。所需信息在第3级。第一级有一个日历,每天都是一个链接。第二个级别是月份的日期,第三个级别是我需要的信息(正文) 链接是3级深度:
带信息/文字的________页面(第3级)
我没有超过第1页/级别。
这是我的代码:
agent = Mechanize.new
page = agent.get('http://mywebsite.com/calendarPageWithLinks.htm')
puts page.title
page.links.each do |link|
puts link.text
puts link.href
end
更新
我能够访问不同的级别。这里使用的代码(它不是最优的)。
page.links.each do |link|
puts "--------------------------------- LEVEL 1 --------------------------------------------------"
puts link.text
puts link.href
if page2 = agent2.get(link.href)
puts "--------------------------------- LEVEL 2 --------------------------------------------------"
page2.links.each do |link2|
puts " ****** #{link2.text}"
puts " ****** #{link2.href}"
if page3 = agent3.get(link2.href)
puts "--------------------------------- LEVEL 3 --------------------------------------------------"
page3.links.each do |link3|
name = link3.href
if name.to_s.include? 'mailto:'
puts " --------- #{link3.text}"
puts " --------- #{link3.href}"
else
puts " --------- #{link3.text}"
puts " --------- #{link3.href}"
if page4 = agent4.get(link3.href)
puts "--------------------------------- LEVEL 4 --------------------------------------------------"
page4.links.each do |link4|
puts " +++++++++ #{link4.text}"
puts " +++++++++ #{link4.href}"
name = link4.href
if name.to_s.include? 'www.somesite.com'
puts " ///////////// GOT IT !!!! /////////// #{link4.href}"
counterInfo += 1
end
end
puts " -----------------PAGE4 "
end
end
end
puts " -----------------PAGE3 "
end
puts " ***********PAGE2 "
end
end
puts " counterInfo = #{counterInfo} "
end