我使用的是回报率从网页上的链接和下载文件,我将指定一个链接到我的应用程序中的网页,这里是我想要做的事情网络爬虫提取
(1 )我想提取网页中的所有链接
(2)求,如果他们是链接到PDF文件(基本上是一个模式匹配)
(3)我要下载文件的链接(PDF格式例如)并将它们存储在我的系统中。
我尝试过使用银莲花,但它抓取整个网站超过我的需要,也如何下载文件在相应的链接?
干杯
我使用的是回报率从网页上的链接和下载文件,我将指定一个链接到我的应用程序中的网页,这里是我想要做的事情网络爬虫提取
(1 )我想提取网页中的所有链接
(2)求,如果他们是链接到PDF文件(基本上是一个模式匹配)
(3)我要下载文件的链接(PDF格式例如)并将它们存储在我的系统中。
我尝试过使用银莲花,但它抓取整个网站超过我的需要,也如何下载文件在相应的链接?
干杯
看一看Nokogiri以及。
require 'nokogiri'
require 'open-uri'
doc = Nokogiri::HTML(open('http://www.thatwebsite.com/downloads'))
doc.css('a').each do |link|
if link['href'] =~ /\b.+.pdf/
begin
File.open('filename_to_save_to.pdf', 'wb') do |file|
downloaded_file = open(link['href'])
file.write(downloaded_file.read())
end
rescue => ex
puts "Something went wrong...."
end
end
end
您可能需要做一些更好的异常捕获,但我觉得你的想法:)
您试过scrapi?你可以用CSS选择器来刮页面。
瑞安贝茨也做了一个screencast关于它。
要下载的文件,你可以使用open-uri
require 'open-uri'
url = "http://example.com/document.pdf"
file = open(url)
c = file.read()
但我使用,我使用Ruby 1.8.7“scrapi”的麻烦。它说Scraper :: Reader :: HTMLParseError:无法加载/Library/Ruby/Gems/1.8/gems/scrapi-1.2.0/lib/tidy/libtidy.dylib – theReverseFlick 2011-02-04 12:41:42
这正是我正在寻找做一个小个人项目。谢谢! – lyonsinbeta 2012-08-02 03:18:49