Веб-сканер в Rails для извлечения ссылок и загрузки файлов с веб-страницы - PullRequest
2 голосов
/ 04 февраля 2011

Я использую RoR, я укажу ссылку на веб-страницу в своем приложении, и вот что я хочу сделать

(1) Я хочу извлечь все ссылки на веб-странице

(2) Найдите, являются ли они ссылками на PDF-файл (в основном, по шаблону)

(3) Я хочу скачать файл по ссылке (например, в формате pdf) и сохранить его в моей системе.

Я пытался использовать Anemone, но он сканирует весь веб-сайт, который выходит за рамки моих потребностей, а также как мне загрузить файлы по соответствующим ссылкам?

Приветствия

Ответы [ 2 ]

9 голосов
/ 04 февраля 2011

Взгляните на Нокогири , а также.

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

Возможно, вы захотите сделать лучший поиск исключений, но я думаю, вы поняли:)

1 голос
/ 04 февраля 2011

Вы пробовали scrapi ?Вы можете очистить страницу с помощью селекторов CSS.

Райан Бейтс также сделал скринкаст об этом.

Для загрузки файлов вы можете использовать open-uri

require 'open-uri'  
url = "http://example.com/document.pdf"
file = open(url)  
c = file.read()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...