ruby + сохранить веб-страницу

Сохранить HTML-код веб-страницы с помощью Ruby очень просто.

Один из способов сделать это с помощью rio:

require 'rubygems'
require 'rio'
rio('http://www.google.com') > rio('google.html')

Можно ли сделать то же самое, проанализировав html, снова запросив разные изображения, javascript, css, а затем сохранив каждое из них?

Я думаю, что это не очень эффективно.

Итак, есть ли способ сохранить веб-страницу + все изображения, css и javascript, связанные с этой страницей, и все это автоматически?


person massinissa    schedule 01.09.2009    source источник


Ответы (3)


как насчет системы("wget ​​-r -l 1 http://google.com")

person dimus    schedule 01.09.2009

Большую часть времени мы можем использовать инструменты системы. Как сказал Димус, вы можете использовать страницу wget для загрузки.

И есть много полезных апи для решения проблемы с сетью. Например, net/ftp, net/http или net/https. Подробности вы можете посмотреть в документе. Net/HTTP . Но эти методы получают только ответ, нам нужно больше разобрать HTML-документ. Еще лучше использовать библиотеку Mozilla.

person Qianjigui    schedule 01.09.2009
comment
Что касается анализа html веб-страницы, я использую nokogiri. Однако он извлекает только HTML, а не изображения, css, js... Система wget хороша, но я не могу контролировать весь процесс напрямую из Ruby. Есть ли эквивалент wget в Ruby? - person massinissa; 02.09.2009
comment
Я написал простой веб-браузер с библиотекой Mozilla на рубине. Может быть, это хороший способ решить проблему? - person Qianjigui; 02.09.2009
comment
Спасибо за идею, я думаю, что это можно сделать с помощью mozilla lib. Есть ли для него рубиновый интерфейс? - person massinissa; 02.09.2009
comment
выглядит отлично !! Можно ли получить ваш рубиновый код? заранее спасибо - person massinissa; 06.09.2009

person    schedule
comment
Можете ли вы уточнить? В частности, что делают все эти флаги для wget и что вы подразумеваете под «чтением файлов из output_dir»? - person Colonel Thirty Two; 31.07.2014