如何下载整个网站?

joe*_*joe 408 web website download

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

任何平台都可以。

Axx*_*err 376

HTTRACK就像复制整个网站内容的冠军一样。该工具甚至可以获取使具有活动代码内容的网站脱机工作所需的部分。我对它可以离线复制的东西感到惊讶。

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

狩猎快乐!

  • @Optimal Solutions:不,那是不可能的。您需要访问服务器或为此提供源代码。 (10认同)
  • 多年来一直使用它 - 强烈推荐。 (8认同)
  • 这会复制在服务器上运行的实际 ASP 代码吗? (4认同)
  • 在为获得授权的网站尝试了 httrack 和 wget 之后,我不得不倾向于 wget。在这些情况下无法让 httrack 工作。 (4认同)
  • 对于 **macOS**,使用 `brew install httrack`,然后使用 `httrack` 运行它。之后它有一个很棒的菜单。容易peezie,柠檬挤压! (3认同)
  • 身份验证的选项是什么? (2认同)

Jon*_*nik 313

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

你会做这样的事情:

wget -r --no-parent http://site.com/songs/
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅Wget 手册及其示例,或例如这些:

  • 没有比这更好的答案了 - wget 可以做任何事情:3 (14认同)
  • +1 包括 --no-parent。绝对使用--mirror 而不是-r。并且您可能希望包含 -L/--relative 以不遵循指向其他服务器的链接。 (8认同)
  • @optimal,当然是 HTML 输出 - 只有在服务器配置严重错误时才会获取代码 (7认同)
  • 不适用于链接、图像和其他内容,因此它毫无用处。使用命令 `wget -m -p -E -k www.example.com` 的另一个答案完成了所有工作,并以非常简单的方式在本地显示一个带有正确链接、图像、格式等的网站。 (4认同)
  • 正如我还要求 httrack.com - 这个 cmd 行工具会得到 ASP *代码* 还是只会得到 HTML 的呈现?我得试试这个。如果确实如此,这对开发人员来说可能有点令人担忧...... (2认同)
  • 不幸的是,它对我不起作用 - css 文件的链接有问题,它们没有更改为相对,即,您可以在文件中看到类似这样的内容:<link rel="stylesheet" type="text/css" href ="/static/css/reset.css" media="screen" /> 这在本地不能很好地工作,除非有一个 waz 来欺骗 firefox 认为某个目录是根目录。 (2认同)
  • Homebrew 展示了如何在他们的主页 http://brew.sh/ 上正确安装它 (2认同)

小智 186

使用 wget:

wget -m -p -E -k www.example.com
Run Code Online (Sandbox Code Playgroud)

选项说明:

-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.
-np, --no-parent        Don't ascend to the parent directory when retrieving 
                        recursively. This guarantees that only the files below 
                        a certain hierarchy will be downloaded. Requires a slash 
                        at the end of the directory, e.g. example.com/foo/.
Run Code Online (Sandbox Code Playgroud)

  • +1 用于提供建议选项的解释。(虽然我不认为 `--mirror` 是不言自明的。这是来自手册页:“*此选项打开递归和时间戳,设置无限递归深度并保留 FTP 目录列表。它目前等效到 -r -N -l inf --no-remove-listing*") (10认同)
  • 对于那些担心由于流量/请求过多而杀死站点的人,请使用`-w seconds`(在请求之间等待若干秒,或`--limit-rate=amount`,指定最大带宽下载时使用 (6认同)
  • 我尝试使用您的 `wget --mirror -p --html-extension --convert-links www.example.com`,它刚刚下载了索引。我认为您需要`-r` 来下载整个站点。 (5认同)
  • 如果需要 Auth 呢? (3认同)
  • 如果您不想将所有内容下载到您要镜像的域名称的文件夹中,请创建您自己的文件夹并使用 -nH 选项(跳过主机部分)。 (2认同)
  • @EricBrotto 你不应该同时需要`--mirror` 和`-r`。来自 `wget` 手册页:“[--mirror] 当前等效于 -r”。 (2认同)
  • `-p` 是 `--page-requisites` 的缩写,对于其他任何想知道的人来说。 (2认同)
  • 像这样使用 `wget` 不会得到 Javascript 中引用的文件。例如,在`<img onmouseout="this.src = 'mouseout.png';" onmouseover="this.src = 'mouseover.png';" src="image.png">` 鼠标移开和鼠标悬停的图像将被遗漏。 (2认同)
  • 如果您只想下载`www.example.com/foo`,请使用`--no-parent` 选项。 (2认同)
  • `wget --no-parent --recursive --level=inf --span-hosts --page-requirements --convert-links --adjust-extension --no-remove-listing https://……/... … --目录前缀=……`。一定有人_需要_这个。 (2认同)
  • 我想指出“--span-host”(不是--span-hosts)对我来说是一个重要的标签,我花了一些时间才找到!没有这个,不在指定域中的链接和图像将不会被备份! (2认同)

Laz*_*zer 8

Internet 下载管理器有一个 Site Grabber 实用程序,有很多选项 - 它可以让您以您想要的方式完全下载您想要的任何网站。

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

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

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

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

  5. 链接可以转换为离线链接浏览

  6. 您有模板,可让您为您选择上述设置

在此处输入图片说明

但是,该软件不是免费的 - 看看它是否适合您的需求,请使用评估版。


小智 8

你应该看看ScrapBook,一个 Firefox 扩展。它具有深度捕捉模式

在此处输入图片说明

  • 版本 57 (Quantum) 后不再与 Firefox 兼容。 (6认同)

Era*_*ran 7

我喜欢离线浏览器
这是一个共享软件,但它非常好且易于使用。


kma*_*rsh 7

itucks - 这就是程序的名称!


Axx*_*err 5

我将解决浏览器使用的在线缓冲...

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

ISP 往往拥有缓存服务器,用于保存 ESPN 和 CNN 等常用网站的副本。这让他们省去了每次他们网络上有人访问这些站点时访问这些站点的麻烦。这可以显着节省向 ISP 发送外部站点的重复请求数量。