Lan*_*ler 11 html javascript wget css images
假设我想要一个简单的页面副本下载到我的 HD 中以永久保存。我不是在寻找深度递归获取,只是一个页面,而且还需要下载该页面加载的任何资源。
示例:https : //www.tumblr.com/
预计:
我很想知道您是否可以帮我找到最好的 wget 语法或其他可以做到这一点的工具。我尝试过的工具通常无法通过 CSS 加载图像,因此在本地加载时页面看起来永远不会正确。谢谢!
我找到了一种使用 FireFox 执行此操作的方法。默认保存已损坏,并且有一个名为“保存完成”的插件,显然可以很好地完成此工作。但是,您无法下载它,因为它说当前的 FireFox 版本不支持它。原因是它被卷入了这个插件:“Mozilla Archive Format”。安装它,然后当你使用 File > "Save Page As.." 有一个名为 "Web Page, complete" 的新选项,它本质上是旧的插件,它修复了 FireFox 使用的库存实现(这很糟糕)。这不是 WGET 解决方案,但它确实提供了一个可行的解决方案。
编辑:对于将来可能会关注此问题并尝试执行此操作的任何人来说,另一个荒谬的问题。让插件正常工作你需要工具> Mozilla存档格式并将“对页面进行忠实快照”的(可怕的)默认设置更改为“使用保存完整保存脚本和源”,否则插件将清空所有您的脚本文件并将它们替换为文本“/* Script removed by snapshot save */”。
小智 12
wget -p -k http://ExampleSite.com
-p 将为您提供正确查看站点所需的所有元素(css、图像等)。-k 将更改所有链接(包括 CSS 和图像的链接),以允许您离线查看页面,因为它在线显示。
更新: 这是特定于您的示例站点:tumblr.com
wget -H -N -k -p --exclude-domains quantserve.com --no-check-certificate -U "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0a2) Gecko/20110613 Firefox/6.0a2" https://www.tumblr.com
Run Code Online (Sandbox Code Playgroud)
细分:
-H = 允许 wget 跨越一个外部主机。必需,因为 tumblr 的首页上没有相同地址的图像,他们使用的是 secure.assets.tumblr.com请参阅排除域的说明
-N = 将仅抓取比您当前拥有的文件更新的文件,以防您随着时间的推移再次下载同一页面
-k = 转换您的链接以正确离线查看
-p = 抓取所有必需的元素以正确查看它(css、图像等)
--exclude-domains = 因为 tumblr.com 主页有一个指向 quantserve.com 的链接,我猜你不想要这个东西,你需要从你的 wget 下载中排除它。注意:这是一个非常重要的,你应该与 -H 一起使用,因为如果你访问一个站点并且他们有多个外部主机的链接(想想广告商和分析的东西),那么你也会抓住那些东西!
--no-check-certificate 需要,因为 tumblr 使用的是 https
-U 更改用户代理。在这种情况下并不是真的有必要,因为它允许默认的 wget 用户代理,但我知道有些网站会阻止它。我只是把它扔在这里,以防万一你在其他网站上遇到任何问题。在我给出的示例片段中,它显示为 Mozilla Firefox 6.02a
最后你有这个网站:https : //www.tumblr.com
小智 0
您还可以通过 shell 使用 wget 发出命令来自动执行此操作(如果您进行编码,则以编程方式执行):
wget --convert-links -r http://www.yourdomain.com
Run Code Online (Sandbox Code Playgroud)
它将下载页面和内部文件并将链接设置为本地。
| 归档时间: |
|
| 查看次数: |
25118 次 |
| 最近记录: |