我开始使用 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?
不需要额外的宝石,试试这个
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很好。
如果您在 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