我正在尝试从网站“获取”数据。
有没有办法只需将程序指向 URL,它就会抓取该域中的所有内容。我应该如何在 OSX 10.5 上执行此操作?如果真的需要,我可以使用 ubuntu 或 windows 框作为最后的手段。
答案1
您可以使用wget
以下命令可供 Mac OS X 下载包含在大多数 Linux 发行版中,可下载网站的全部内容,包括图像、CSS、JavaScript、视频、Flash 文件等。
一旦你有了它,打开一个终端。你可能想这样调用它:
wget -r -l0 -k http://www.example.com/
这将下载一切可http://www.example.com/
通过链接访问。该-r
选项打开递归下载,因此它下载的不仅仅是主页。该-l
选项设置它将从多少页面深度查找链接并下载,设置为0
(就像我所做的那样)将设置为尽可能深入。请注意,如果网站使用动态页面生成,则可能会下载大量内容,因为可能有许多 URL 指向相同或非常相似的内容。该-k
命令是可选的,它将wget
转换所有链接、图像标签等。到本地计算机上的正确位置,以便您可以使用计算机上的 Web 浏览器查看它,并且它将正常工作。
请注意,它只会从www.example.com,而不是任何其他域。如果您需要它转到其他域,请使用开关-H
将其打开,然后使用选项-D
开关定义要从中下载的其他域(例如-D comments.example.com,beta.example.com
)。请注意,如果您关闭开关-D
并设置-l
为0
/infinite,您很可能会尝试下载整个万维网!
另一个可能有用的开关是-N
开关,它会将本地文件上的时间戳设置为服务器上的 HTTP 标头提供的时间Last-Modified
,并且在后续下载中不会下载未更改的文件。
如需了解更多信息,请咨询文档wget
。