Что такое библиотека веб-искателя Ruby, которая разрешает доступ к xpath и эквивалент сохранения как веб-страницы? - PullRequest
0 голосов
/ 22 октября 2010

Мне не нужно сканировать весь Интернет, мне просто нужно открыть несколько URL-адресов, извлечь другие URL-адреса, а затем сохранить некоторые страницы таким образом, чтобы их можно было просмотреть на диске позже. Какая библиотека подойдет для этого?

1 Ответ

1 голос
/ 22 октября 2010

Механизация очень хороша для подобных вещей.

http://mechanize.rubyforge.org/mechanize/

В частности, эта страница поможет:

http://mechanize.rubyforge.org/mechanize/GUIDE_rdoc.html


Под крышками Mechanize использует Nokogiri для разбора документа.Вот простая версия, использующая Open-URI и Nokogiri для чтения страницы, извлечения всех ссылок и написания HTML.

Добавлен пример:

require 'open-uri'
require 'nokogiri'

doc = Nokogiri::HTML(open('http://some.web.site'))

Доступ к ссылкам прост.При этом используются средства доступа CSS:

hrefs = (doc/'a[href]').map{ |a| a['href'] }

При этом XPath делает то же самое:

hrefs = (doc/'//a[@href]').map{ |a| a['href'] }

Сохранять содержимое легко.Создайте файл и попросите Нокогири выложить его в виде HTML:

File.new('some_web_site.html', 'w') { |fo| fo.puts doc.to_html }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...