2013-05-09 38 views
1

我试图抓取网页。如何从指定的URL将网页下载到单个文件中?

我想通过提供其网址并将其保存为离线阅读及其所有图像来下载网页。我无法用wget设置它,因为它创建了许多目录。

这可能与wget?有没有像FireFox中的“另存为”选项,它会创建一个目录并将所有必需的资源放入HTML页面中?

是否有可能做到这一点Nokogiri或机械化?

+0

这个SO线程可能让你开始:http://stackoverflow.com/questions/4217223/how-to-get-the-html-source-of-a-webpage-in-ruby – orde 2013-05-09 19:28:30

+0

谢谢,但它没有说如何下载图片。即使没有互联网连接,我也想下载页面以供阅读。 – 2013-05-09 19:51:20

+0

另一个线程:http://stackoverflow.com/questions/1074309/how-to-download-a-picture-using-ruby – orde 2013-05-09 20:13:33

回答

2

给出的铁皮人答案做了工作。 This显示了如何使用Nokogiri以非常干净的目录结构下载具有图片的单页以供离线阅读。

2

你可以使用wget来做到这一点,并从你的ruby脚本中运行它。

下面是一个例子,它将翻录我的网站skrimp.ly的主页,并将内容放到一个名为“download”的目录中。一切都会在顶层和嵌入在HTML中的链接将被改写为本地:

wget -E -H -k -K -p -nH -nd -Pdownload -e robots=off http://skrimp.ly

注意:您要签一些文件的wget的。它可以做一些非常疯狂的事情,比如下多层次。如果你这样做,请谨慎 - 在网络服务器上可能会相当繁重,并且在某些情况下会给网站管理员花费很多$$$$。

http://www.gnu.org/software/wget/manual/html_node/Advanced-Usage.html#Advanced-Usage

+0

我试过这个命令。当我从互联网断开连接并尝试打开下载的shtml时,图像被重新加载。所以我做了这个: wget -p --convert-links -nH -nd -Pdownloads http://www.bbc.co.uk/persian /world/2013/05/130509_an_buddhist_monks_attack_muslims.shtml 它使用三个文件创建“下载”目录:1-html文件,2 bump?emp =全球,3-robots.txt – 2013-05-10 03:57:27

+0

尝试使用您发布的bbc网址更新命令。 – 2013-05-10 06:37:52

+0

编号,现在可以使用。谢谢 – 2013-05-10 15:30:42