如何下载整个网站?


351

如何从网站下载所有页面?

任何平台都可以。



@tnorthcutt,我也很惊讶。如果我不记得很不对劲,我的Wget答案曾经是被接受的答案,这看起来像定局了。不过,我并不是在抱怨-突然间,重新获得的关注使我获得的不仅仅是赏金代表的价值。:P
Jonik

您尝试IDM吗?superuser.com/questions/14403/…我的帖子被埋没了。您发现IDM中缺少什么?
Lazer

5
@joe:如果您要提供有关缺少的功能的详细信息,可能会有所帮助...
Ilari Kajaste 2009年

Browse-offline.com可以下载网站的完整目录,因此您可以...离线浏览它
Menelaos Vergis 2014年

Answers:


334

HTTRACK的工作原理类似于复制整个站点的内容。该工具甚至可以抓取使具有活动代码内容的网站脱机工作所需的内容。我对它可以离线复制的东西感到惊讶。

该程序将满足您的所有要求。

狩猎愉快!


7
已经使用了多年-强烈建议。
Umber Ferrule,2009年

4
这会复制服务器上运行的实际ASP代码吗?
Taptronic 2010年

8
@最佳解决方案:不,那不可能。您需要访问服务器或源代码。
Sasha Chedygov

2
在为具有授权的站点尝试httrack和wget之后,我不得不倾向于wget。在这种情况下,httrack无法工作。
狮子座

1
身份验证有哪些选择?
森特·马修

272

Wget是用于此类任务的经典命令行工具。它随大多数Unix / Linux系统一起提供,您也可以在Windows上获得它。在Mac上,Homebrew是安装它的最简单方法(brew install wget)。

您将执行以下操作:

wget -r --no-parent http://site.com/songs/

有关更多详细信息,请参见Wget Manual及其示例,例如:


12
没有比这更好的答案了– wget可以做什么:3
Phoshi

6
+1(包括--no-parent)。绝对使用--mirror而不是-r。并且您可能希望包含-L /-relative,以免跟随指向其他服务器的链接。
2009年

2
正如我也要求httrack.com一样-此cmd线工具会获取ASP 代码还是仅获取HTML呈现?我必须尝试这个。如果这样做的话,这可能
会给

6
@optimal,当然是HTML输出-仅在服务器配置不当时才会获取代码
Jonik 2010年

2
不幸的是,它对我不起作用-指向css文件的链接存在问题,它们未更改为相对文件,即您可以在文件中看到以下内容:<link rel =“ stylesheet” type =“ text / css” href =“ / static / css / reset.css” media =“ screen” />在本地不能很好地工作,除非有人试图欺骗Firefox认为某个目录是根。
gorn

148

使用wget:

wget -m -p -E -k www.example.com

选项说明:

-m, --mirror            Turns on recursion and time-stamping, sets infinite 
                          recursion depth, and keeps FTP directory listings.
-p, --page-requisites   Get all images, etc. needed to display HTML page.
-E, --adjust-extension  Save HTML/CSS files with .html/.css extensions.
-k, --convert-links     Make links in downloaded HTML point to local files.

8
+1用于提供建议选项的说明。(尽管我认为--mirror不是很容易解释。这来自手册页:“ 此选项打开递归和时间戳记,设置无限递归深度并保留FTP目录列表。它当前等效于-r -N- l inf --no-remove-listing “)
Ilari Kajaste 09年

2
如果您不想将所有内容都下载到要镜像的域的名称的文件夹中,请创建自己的文件夹并使用-nH选项(跳过主机部分)。
拉斐尔·布加杰夫斯基

2
如果需要验证怎么办?
Val

4
我尝试使用您的工具wget --mirror -p --html-extension --convert-links www.example.com,它只是下载了索引。我认为您需要-r下载整个网站。
Eric Brotto 2014年

4
对于那些担心因流量/太多请求而杀死站点的用户,请使用-w seconds(等待请求之间的秒数,或者使用--limit-rate=amount,以指定下载时使用的最大带宽
vlad-ardelean


8

Internet Download Manager的Site Grabber实用程序具有很多选项-使您可以完全按照自己的方式下载所需的任何网站。

  1. 您可以设置要下载的页面/文件大小的限制

  2. 您可以设置要访问的分支站点的数量

  3. 您可以更改脚本/弹出窗口/副本的行为方式

  4. 您可以指定一个域,只有在该域下才会下载所有符合要求的页面/文件

  5. 链接可以转换为脱机链接以进行浏览

  6. 您可以使用模板来选择上述设置

在此处输入图片说明

该软件不是免费的-请查看软件是否符合您的需要,使用评估版。



5

我将介绍浏览器使用的在线缓冲...

通常,大多数浏览器使用浏览缓存将您从网站下载的文件保留一段时间,这样您就不必一遍又一遍地下载静态图像和内容。在某些情况下,这可以大大加快速度。一般而言,大多数浏览器缓存都被限制为固定大小,当达到该限制时,它将删除缓存中最旧的文件。

ISP倾向于具有缓存服务器,该服务器保留诸如ESPN和CNN之类的常用网站的副本。这样可以避免他们每次在网络上有人访问这些站点时都可以访问这些站点的麻烦。这可以节省大量重复发送给ISP的外部站点的请求。




4

我已经很多年没有这样做了,但是仍然有一些实用程序。您可能想尝试Web Snake。我相信几年前就使用过它。当我读到您的问题时,我马上就想起了这个名字。

我同意Stecy。请不要锤打他们的网站。很坏。


3

尝试BackStreet浏览器

它是一个免费的,功能强大的离线浏览器。高速,多线程的网站下载和查看程序。通过同时发出多个服务器请求,BackStreet Browser可以快速下载整个网站或网站的一部分,包括HTML,图形,Java Applet,声音和其他用户可定义的文件,并将所有文件以其本机格式保存在硬盘中,或作为压缩的ZIP文件并脱机查看。

在此处输入图片说明


3

Teleport Pro是另一个免费的解决方案,它将复制您目标位置中的所有文件(还有付费版本,使您可以提取更多页面的内容)。


3

DownThemAll是Firefox的附加组件,单击即可下载特定网页的所有内容(例如,音频或视频文件)。这不会下载整个站点,但这可能是问题正在寻找的东西。


它仅能下载链接(HTML)和媒体(图像)。
Ain

3

对于Linux和OS X:我编写了用于将整个网站归档到WARC文件的抓取站点。这些WARC文件可以浏览或提取。抓取站点使您可以使用正则表达式控制要跳过的URL,并且在爬网运行时可以更改这些URL。它还提供了广泛的默认值集,用于忽略垃圾URL。

有一个用于监控抓取的Web仪表板,以及用于跳过视频内容或特定大小的响应的其他选项。



0

古老的FreeDownloadManager.org也具有此功能。

Free Download Manager具有两种形式的两种形式:Site Explorer和Site Spider

站点浏览器
站点浏览器使您可以查看网站的文件夹结构,并轻松下载必要的文件或文件夹。
HTML Spider
您可以使用HTML Spider下载整个网页,甚至整个网站。可以调整该工具以仅下载具有指定扩展名的文件。

我发现,在尝试下载整个网站之前,Site Explorer有助于查看要包含/排除的文件夹,尤其是当您不想下载的网站中隐藏了整个论坛时,尤其如此。



-3

Firefox可以本机运行(至少FF 42可以)。只需使用“保存页面”

在此处输入图片说明


6
错误!该问题询问如何保存整个网站。Firefox无法做到这一点。

2
您的方法仅在一个单页网站上有效,但是如果该网站有699页?会很累……
Quidam

-4

我相信Google chrome可以在桌面设备上执行此操作,只需转到浏览器菜单,然后单击保存网页即可。

另请注意,诸如Pocket之类的服务可能实际上并未保存该网站,因此容易受到链接损坏的影响。

最后请注意,复制网站内容可能会侵犯版权(如果适用)。


3
一个Web 页面在浏览器只是一个了许多网页的网站
Arjan 2015年

@Arjan我想这使我的选择很费力。我相信人们只想保存一页的情况更为普遍,因此对于那些来此访问的人来说,此答案可能会更好。
jiggunjer
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.