我经常使用 wget 来镜像非常大的网站。包含热链接内容(无论是图像、视频、css、js)的站点会造成问题,因为我似乎无法指定我希望 wget 抓取其他主机上的页面必需品,而无需抓取也遵循指向其他主机的超链接主机。
比如我们看这个页面 https://dl.dropbox.com/u/11471672/wget-all-the-things.html
让我们假设这是一个我想完全镜像的大型站点,包括所有页面要求——包括那些热链接的。
wget -e robots=off -r -l inf -pk
^^ 获取除热链接图像之外的所有内容
wget -e robots=off -r -l inf -pk -H
^^ 获取所有内容,包括热链接图像,但失控,继续下载整个网络
wget -e robots=off -r -l inf -pk -H --ignore-tags=a
^^ 获取第一页,包括热链接和本地图像,不跟随超链接到范围之外的站点,但显然也不跟随超链接到站点的下一页。
我知道还有其他各种工具和方法可以实现这一点(HTTrack 和 Heritrix 允许用户区分其他主机上的热链接内容和指向其他主机的超链接),但我想看看 wget 是否可行. 理想情况下,这不会在后处理中完成,因为我希望将外部内容、请求和标头包含在我输出的 WARC 文件中。