ruby + сохранить веб-страницу - PullRequest
2 голосов
/ 01 сентября 2009

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

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

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 01 сентября 2009

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

0 голосов
/ 31 июля 2014
url = "docs.zillabyte.com"
output_dir = "/tmp/crawl"

# -E = adjust malformed extensions (e.g. /some_image/ -> /some_image.gif)
# -H = span hosts (e.g. include assets from other domains) 
# -p = download all assets associated with the page
# -P = output prefix (a.k.a the directory to dump the assets)
system("wget -E -H -p '#{url}' -P '#{output_dir}'")

# read files from 'output_dir'
0 голосов
/ 01 сентября 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...