通过HTTP翻录网站以下载图像,HTML和CSS


22

我需要通过HTTP翻录网站。我需要下载图像,HTML,CSS和JavaScript并将其组织在文件系统中。

有谁知道如何做到这一点?


2
您应该指出,您不会使用此软件侵犯版权。否则,我们仅假设您要镜像其他人的内容,以便从中获利。
belgariontheking

我们曾经有一个客户想要离开,但采用其网站的静态HTML版本,放弃了CMS。我使用HTTrack生成静态站点。它可以在Windows和Ubuntu上很好地工作。
TRiG 2010年

4
@belgariontheking:有趣的是您认为最糟糕。我们还使用WinHTTrack下载我们自己的动态网站的静态HTML版本。
Umber Ferrule,

Answers:


40
wget -erobots=off --no-parent --wait=3 --limit-rate=20K -r -p -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" -A htm,html,css,js,json,gif,jpeg,jpg,bmp http://example.com

这在控制台中运行。

这将抢占一个网站,在两次请求之间等待3秒钟,限制其下载速度,以使其不会杀死该网站,并对其进行掩盖,使其看起来像只是一个浏览器,因此该网站不会切断您的访问权限使用防水mechanism机制。

注意,该-A参数指示您要下载的文件类型的列表。

您也可以使用另一个标记,-D domain1.com,domain2.com以指示要下载的一系列域,如果它们具有其他服务器或用于承载不同类型文件的文件。如果没有文件,就没有一种安全的方法可以在所有情况下实现自动化。

wget通常在Linux上预先安装,但可以轻松地为其他Unix系统编译,也可以为Windows轻松下载:GNUwin32 WGET

用它来造福而不是邪恶。


1
wget -erobots = off --no-parent --wait = 3 --limit-rate = 50K -r -p -U“ Mozilla / 4.0(compatible; MSIE 7.0; Windows NT 5.1)” -k --directory-prefix “ C:\ rip”-页面必备条件-A htm,aspx,php,jsp,asp,zip,png,html,css,js,json,gif,jpeg,jpg,bmp domain.com
Chris S

这可以在“虚拟网址”上使用吗?我担心我在社交网站上写的内容(确定,歌曲),并且想在本地备份。该网站是“ www.example.com”,但是有一个带有我的用户名“ avi.example.com”的个性化网址。我不想下载整个网站,仅下载我的内容!
阿维(Avi)

在Linux上,您可能需要从源代码安装wget。例如,Ubuntu版本无法解析CSS,而上游wget可以解析CSS。
GDR

16

好的免费解决方案:HTTrack

HTTrack是一个免费的(GPL,自由/免费软件)并且易于使用的离线浏览器实用程序。

它使您可以将Internet上的万维网站点下载到本地目录,以递归方式构建所有目录,并将HTML,图像和其他文件从服务器下载到计算机。HTTrack安排原始站点的相对链接结构。只需在浏览器中打开“镜像”网站的页面,就可以从一个链接到另一个链接浏览该网站,就像您正在在线查看它一样。HTTrack还可以更新现有的镜像站点,并恢复中断的下载。HTTrack是完全可配置的,并且具有集成的帮助系统。


7

在Linux系统上,“ wget”几乎可以做到这一点。

正如其他答案中提到的,它也已移植到其他几个平台。



因为是Linux,所以我可能只创建一个Ubuntu VM,运行wget,然后将文件传输回我的主机。似乎比移植到Windows更快。:)(当然,移植到Windows可能还是个好习惯!)
JMD

我在机器上运行debian。我可以告诉wget通过仅给其http根域检索关联的sub dirs / javascript / css / images吗?
damon

#下载example.com的全部内容wget -r -l 0 example.com

是的...或者使用本机Windows端口,或者使用Cygwin ...
Tmdean


1

查看Scrapbook扩展的firefox。它在这方面做得非常出色,并且还与firebug集成在一起,并且允许您在保存之前从DOM中删除元素。


1

您需要使用wget-大多数平台都可用。curl不会递归地请求文档,这是wget的主要优势之一。

Linux的:(通常包含在发行版)http://www.gnu.org/software/wget/
的Windows: http://gnuwin32.sourceforge.net/packages/wget.htm
苹果:HTTP://www.geekology。 co.za/blog/2009/02/macports-compile-and-install-open-source-software-on-mac-os-x/

请确保您没有锤打网站-在请求之间设置适当的延迟时间,并确保它在网站的服务范围内。

-亚当


实际上,我们要锤炼的是我们的服务器。该网站是通过PHP动态生成的,而CMS / DB有点混乱。这是一个令人费解的故事,我是刚来到这里的开发人员。但是我们现在正在Django中构建所有内容,因此您不必担心。
damon

1

实际上,按照我在GWLlosa帖子中的评论,我只记得我已经安装了GnuWin32,并且确定它包含Windows的wget端口。

http://sourceforge.net/projects/gnuwin32/

GnuWin32 provides Win32-versions of GNU tools,
or tools with a similar open source licence.
The ports are native ports, that is they rely
only on libraries provided with any 32-bits
MS-Windows operating system, such as
MS-Windows 95 / 98 / 2000 / NT / XP


1

wget --random-wait -r -p -e robots=off -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" --limit-rate=20k -b http://www.example.com

  • -p :参数告诉wget包括所有文件,包括图像。
  • -e robots=off :忽略网站robots.txt规则
  • -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" :用户代理字符串
  • --random-wait :避免被列入黑名单
  • --limit-rate=20k :限制下载文件的速率。
  • -b :注销后继续wget。

这些是我使用的参数。当出现问题时,我还添加-c(或--continue)选项,并且必须重新启动该过程。
kub1x


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.