为什么 Cyotek WebCopy 和 HTTrack 等网站复制工具无法找到 Google 等搜索引擎可以找到的文件?

为什么 Cyotek WebCopy 和 HTTrack 等网站复制工具无法找到 Google 等搜索引擎可以找到的文件?

我想将目标网站保密,但以下是一些详细信息:

  • 这是一个个人(单一作者)公开文档/作品集/博客类型的网站
  • 它似乎使用 Apache 托管
  • 据我所知,内容是静态的
  • 当在某些相对路径上使用浏览器时,它会使用浏览器的文件“索引”视图为它们提供服务
  • 它似乎没有 robot.txt
  • 它有一个根 index.html
  • 这不是一些“秘密”信息(它在公共网络上,并且那里没有登录/帐户)

那里有“公共”图像和 html 文件,它们最终没有从 index.html 链接。主题工具 Cyotek WebCopy 和 HTTrack 无法找到这些文件,但 Google 可以:site:example.com等等。

谷歌能做什么而那些网络复制工具不能做的呢?

这项练习的目的是既要保留副本,又要发现尚未链接的内容。我问这个问题的目的是:

  1. 找到一种方法来复制搜索引擎所看到的完整网站。
  2. 进一步了解网络。

答案1

谷歌能做什么而那些网络复制工具不能做的呢?

它遵循来自其他网站。HTTrack 等工具仅限于单一起点,而 Google 几乎了解整个网络 - 其中一些内容可能已链接到论坛帖子、邮件列表存档、推文等。

(这很可能是 Google 最初找到 example.com 的方式 - 不是通过了解新域名,而是通过在索引 another.example.net 时找到那里的跨站点链接。)

答案2

并非所有卷筒复印机都是一样的。

我一年前复制一个网站时的经验是,大多数工具都无法完成下载。

我终于找到了一款可以抓取整个网站数据的实用程序。由于这是针对某个网站的付费服务,即 Wayback Machine,因此我就不提这款实用程序的名字了。

然而,该实用程序几周下载该网站,当我能够跟踪它的工作原理时,我有时可以看到它正在工作 用了几个小时只找到一个有问题的文件。结果非常完美,我从未发现任何缺失。

我不知道这个实用程序使用了什么算法,但显然,除了最简单的情况外,仅跟踪链接的直接算法效率不高。

我希望 Google 在扫描网站方面至少能像我发现的那个实用程序一样出色。我不希望 Cyotek WebCopy 和 HTTrack 在下载网站上花费与那个实用程序一样多的处理时间和互联网使用量,或者 Google 可以承受得起。


仔细想想,还有另一种机制可以很好地解释这一点:长记忆。

我相信一个高效的 Scrapper 应该像这样工作:

  • 扫描页面及其链接
  • 收集所有 URL,以及一些版本指示符、日期/时间或校验和
  • 如果某个页面自上次删除后没有发生改变,就不要对其进行索引,也不要处理其链接(之前已经做过了)。

通过这种方式,抓取工具可以非常高效地重新扫描 99% 的页面均未发生变化的网站,从而跳过几乎所有的页面。

我猜想抓取工具偶尔会启动修剪操作,以验证哪些 URL 仍指向有效页面。我知道 Google 确实有时会给出不存在的页面作为结果。由于这是一项成本高昂的操作,因此修剪可能不会经常进行。

这种算法的结果是:仍然存在的已编入索引的页面只要仍然存在就会保持被编入索引,甚至有时之后也是如此。

在我看来,这似乎是 Google 仍将不再链接的页面编入索引的最可能原因。这些页面之前是链接的,但现在不再链接。

(注意:我不相信在删除一个网站时,谷歌会查看它已经索引的数万亿其他网站,以在当前网站中寻找其他可以索引的页面。)

相关内容