如何使用Mechanize gem获取网站的所有链接?

时间:2014-09-11 07:08:56

标签: ruby mechanize

如何使用ruby Mechanize gem获取网站的所有链接? Mechanize可以像Anemone gem那样做:

Anemone.crawl("https://www.google.com.vn/") do |anemone|
  anemone.on_every_page do |page|
    puts page.url
  end
end

我是网络抓取工具的新手。提前谢谢!

1 个答案:

答案 0 :(得分:2)

使用Mechanize非常简单,我建议你阅读文档。您可以从Ruby BastardBook开始。

要从包含Mechanize的页面获取所有链接,请尝试以下操作:

require 'mechanize'

agent = Mechanize.new
page = agent.get("http://example.com")
page.links.each {|link| puts "#{link.text} => #{link.href}"}

我认为代码很清楚。 page是一个Mechanize :: Page对象,用于存储检索到的页面的全部内容。 Mechanize :: Page有links方法。

机械化非常强大,但请记住,如果你想在没有与网站任何互动的情况下进行拼抢,请使用Nokogiri。 Mechanize使用Nokogiri来废弃网页,因此只能使用Nokogiri进行抓取。