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

标签 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

我是网络爬虫的新手。提前致谢!

最佳答案

使用 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 方法。

Mechanize 非常强大,但请记住,如果您想在不与网站进行任何交互的情况下进行抓取,请使用 Nokogiri。 Mechanize 使用 Nokogiri 抓取网页,因此抓取时仅使用 Nokogiri。

关于ruby - 如何使用 Mechanize gem 获取网站的所有链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25781236/

相关文章:

ruby - 检测 Ruby 中是否存在可枚举的内容

ruby - 查找字符串中的出现并保留出现的顺序

python - 结合 Mechanize 浏览器和 Selenium

ruby ::Mechanize::cookie_jar

Python x-www-form-urlencoded POSTing : cannot find attributes

ruby-on-rails - 快速帮助重构 Ruby 类

Ruby 和 OpenSSL 证书验证失败

Ruby Net::FTP 进度条

Ruby 登录以使用 Mechanize 进行 Spotify

如果调用了 Mechanize 代理的 read_timeout=,则 ruby​​ Fakeweb 错误