6 comments on “对于记录网页内容(保存或存档),我分不同用途的几种方法

  1. 我用过右键另存,还有纯文本直接粘贴到记事本,富文本粘贴到 Word。各有各的问题。重要的是都不能保存网页在服务器上的修改时间属性,还有不能递归抓取整个站点或某个目录下的内容。
    直到我用 WSL 运行 wget 并用 –recursive 参数。当时用这种方法把 http://mowypan.com/ 整个站点备份了一份到本地。(可是该死的 Linux 不支持设置创建时间属性,HTTP 似乎也不支持创建时间,修改时间的精确度也只有 1 秒。)
    至于 URL 是目录名结尾的页面就似乎没办法正确获取文件名了。只能手动结尾加 /index.htm 验证然后手动改名。

    • 感谢回复,你提到的命令行的递归下载方式我是没想到的。
      就该命令我去问了一下 ChatGPT ,同时,我也特别关注了「动态加载内容」和「仅出现在搜索返回结果中的链接」这两种类型的页面,能否通过你提到的 wget 的 –recursive 参数抓取这个问题上。

      ChatGPT 给我的回答是这两种情况都不行。不知道你自己的体验是如何的呢?

      以下是 ChatGPT 给我的回答:
      ————————
      你提到的两种情况都是比较常见的场景,下面我分别解释一下 wget –recursive 参数在这两种情况下的有效性:
      1.动态加载内容(例如通过 JavaScript 动态加载图片或其他资源):
      wget 本身是一个命令行工具,主要用来抓取静态内容的网页。它不会执行网页中的 JavaScript 代码。因此,对于依赖于 JavaScript 动态加载的内容,wget –recursive 参数是无法抓取到这些动态生成的内容的。换句话说,如果图片或其他资源是通过 JavaScript 在页面加载后动态生成或请求的,那么 wget 无法获取这些资源。

      为了抓取这些动态加载的内容,你可能需要使用像 Selenium 这样的工具,它能够模拟浏览器行为,执行 JavaScript,并抓取渲染后的网页内容。

      2.数据库搜索结果的链接抓取:
      在这种情况下,如果你的静态页面上没有包含直接指向数据库结果页面的链接,那么 wget –recursive 也不会抓取到这些结果。wget 的递归抓取是基于已经在页面上的链接,而不是模拟用户的搜索行为。如果链接只有在你执行搜索操作后才会生成并显示,那么 wget 也无法抓取到这些链接。

      这种情况下,如果你要抓取搜索结果,可能需要编写一个脚本来模拟搜索操作,并将返回的结果页面进行解析和抓取。比如,可以使用 Python 的 requests 库来发送搜索请求,然后解析返回的 HTML 页面中的链接。
      总结来说,wget –recursive 参数在你提到的这两种情况下都是无效的,因其设计和能力的限制。如果你需要抓取这些动态或基于用户行为生成的内容,通常需要更高级的工具或自定义的脚本来实现。

  2. 评价所用的四个维度很有意思。我在读和写的过程中,也有些体验。

    从用途来说,关键的问题是,会不会公开。如果是做笔记、收集之用,复制文本、截图、保存网页、打印为 PDF,都似乎并没有太多不同,都能编辑(不同程度)。若是有可能再公开,需要公正防伪,WebArchive 一般足够,如果源站内容有开源repo,并在提交时使用了 PGP 签名,则算自带防伪了。同时我有一个奇想,如果我们录下访问 https 网站过程的数据包,并使其可以重播,是否可做此域名下某URL曾返回某内容的证明。

    说起文中的四种方法,我自己的网站几乎都适用。希望更多的网站都能支持这四种方法。首先不要付费墙、遮罩类的元素,不干扰阅读和选择、复制。其次,正在开发一个功能,给内容中提到的所有链接自动做 WebArchive 快照,这样读者保存参考时,内容的相关链接也自然具备了防失效效果。同时,我还优化了打印的样式,可直接打印出一份排版良好的 PDF。最后,使用 SSR。

    • 感谢回复。
      我记得以前了解 https 协议的时候,就提到它可以抵抗「重放攻击」(好像意思就是网路中间的窃听者把一个请求的数据包录制下来,然后自己再伪装成发起者再次发送一遍。)如果和你说的奇想「如果我们录下访问 https 网站过程的数据包,并使其可以重播」是一回事的话,我觉得可能也无法善意使用该方法。

      另外, WebArchive 服务本身好像也有点……不太稳定?我记得去年还是今年年初听到新闻,他们好像在一场什么官司里输掉了。好像有这么回事。

  3. 你可以用这个:https://r.jina.ai/https://zhuanlan.zhihu.com/p/351326998 网址那个改成你想要保存的网址。

    这个会转换markdown,然后在保存的。

    • 感谢回复!
      我试了一下,挺神奇的,也挺方便。只是似乎不会把所有内容(例如图片等)都转换为markdown吧?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注