0

我开始使用 ruby​​ 编程语言。我有一个 ruby​​ 脚本可以用海葵在页面上抓取 pdf 文件:

Anemone.crawl("http://example.com") do |anemone|
  anemone.on_pages_like(/\b.+.pdf/) do |page|
    puts page.url
  end
end

我想使用 gem ruby​​ 下载 page.url。我可以使用什么 gem 来下载 page.url?

4

2 回答 2

3

不需要额外的宝石,试试这个

require 'anemone'

Anemone.crawl("http://www.rubyinside.com/media/",:depth_limit => 1, :obey_robots_txt => true, :skip_query_strings => true) do |anemone|
  anemone.on_pages_like(/\b.+.pdf/) do |page|
    begin
      filename = File.basename(page.url.request_uri.to_s)
      File.open(filename,"wb") {|f| f.write(page.body)}
      puts "downloaded #{page.url}"
    rescue
      puts "error while downloading #{page.url}"
    end
  end
end

downloaded http://www.rubyinside.com/media/poignant-guide.pdf

而且pdf很好。

于 2013-03-01T17:47:18.607 回答
-1

如果您在 UNIX 系统上,可能UnixUtils

Anemone.crawl("http://example.com") do |anemone|
  anemone.on_pages_like(/\b.+.pdf/) do |page|
    puts page.url            # => http://example.com/foo.bar
    puts UnixUtils.curl(url) # => /tmp/foo.bar.1239u98sd
  end
end
于 2013-03-01T17:37:34.933 回答