Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

使用 Wget 镜像网站

Posted on 2022-12-22

有时我想存档一个站点。也许这是重要的事情,或者网站可能要下线了。我经常努力编造正确的 Wget 命令,所以我把它记录在这里以供将来参考。

 wget --adjust-extension \ --convert-links \ --mirror \ --no-parent \ --page-requisites \ --restrict-file-names = windows \ --trust-server-names \ "https://example.com/tutorials"

那是基本命令。如果你想包含所有第三方依赖项,你可能还需要--span-hosts ;如果你想包含来自某些域的资产,你可能还需要--domains = cdn.example.com 。

标志说明

--adjust-extension

这可确保某些文件类型以通用扩展名结尾。例如带有.html的 HTML 带有.css的 CSS 和类似的。不幸的是,这并没有调整所有下载的文件,但提供了一些改进。使用通用扩展有助于从通用 Web 服务器提供内容,这些服务器将根据扩展设置Content-Type标头。

--convert-links

将内容中的链接更新为相关链接。例如,如果页面包含<a href= https://example.com/foo >将被转换为<a href= foo >以便在浏览存档时按预期工作。它还会将尚未存档的链接转换为绝对链接,以便它们继续工作。

--mirror

这会打开一些推荐用于镜像的选项。有关详细信息,请参见手册页。

--no-parent

防止对根 URL“之上”的顶级页面进行归档。例如,如果归档https://example.com/music链接到https://other.example将不会被跟踪,并且到/work的链接将不会被跟踪。请注意,这不会阻止归档页面要求。因此,如果https://example.com/music/player加载/js/music-player.js ,即使该文件位于根目录之上,该文件仍将被下载。

--page-requisites

下载显示页面所需的文件。例如图像、JavaScript 和 CSS。请注意,Wget 不执行 JavaScript,因此不会找到动态加载的资源。

--restrict-file-names

默认情况下,Wget 会将文件保存到任何 URL 路径。这不适用于所有网络服务器。除了文件名限制外,许多人在请求文件之前会去掉一个查询字符串,例如?v=123 。这意味着如果 Wget 保存example.css?v=123它将实际上无法访问。

我使用windows是因为它是内置的并且似乎涵盖了最重要的情况。

--trust-server-names

此标志更改 Wget 在遇到重定向时命名文件的方式。默认情况下,它根据初始 URL 进行保存,这使其根据最终 URL 进行保存。这很有用,因为 Wget 如何处理在解析任何重定向后以相同 URL 结束的多个 URL。默认情况下,它会选择一个随机的初始 URL 并重写指向该 URL 的所有链接,这可能会导致出现奇怪的 URL。例如 WordPress 站点有指向/index.html?p=985的链接,该链接重定向到常规帖子 URL。通常 Wget 最终会选择其中之一并重写所有链接以指向它,这很不雅观。

其他选项

我不知道任何其他用于全站点存档的简单选项。一种有趣的方法是使用AssetGraph之类的东西来获取站点。它有一个更强大的分析引擎(包括解析脚本),可以捕获更多动态 URL 引用,以及一个可编写脚本的类似 AST 的引用,可以更好地清理网站(例如合并具有不同参数但相同内容的 URL) .

原文: https://kevincox.ca/2022/12/21/wget-mirror/

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • Elad Gil
  • Ellie Huxtable
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme