【发布时间】:2011-05-10 22:47:57
【问题描述】:
URL 规范化的主要目的之一是避免 GET 对不同 URL 的请求产生完全相同的结果。
现在,我知道您可以检查canonical tag,甚至可以比较两个 URL 的 HTML 以查看它们是否相同,但是您必须下载完全相同的资源两次才能做到这一点,这不是重点我之前说过。
有没有办法检查重复的内容只做一个 HEAD 请求?如果没有,有没有办法只下载网页的<head> 部分而不下载整个文档?
我能想到最后一个的解决方案,我只是想知道是否有直接的解决方案。
【问题讨论】:
-
查看Wikipedia article,在我看来,您描述的问题与 URL 规范化所带来的问题不同。网络爬虫将规范化 URL 以确保它使用的是规范版本;您似乎在描述一个问题,即同一网站上的两个不同但已经规范化的 URL 可以产生相同的结果输出。我是否正确描述了您的问题?
-
@Robert Harvey - 正确。规范化 URL 通常是一种减少重复内容的方法。我正在寻找一种方法来避免发出两个 GET 请求以确定两个 URL 是否具有相同的确切 HTML,使 URL 标准化与否。这样,Web 爬虫中的 URL 规范化本身就不是必需的。我正在考虑对 HEAD 请求响应进行哈希处理,这有多可靠?
-
规范化 URL 不会最小化重复内容;它最大限度地减少了 same URL 可以呈现给网络爬虫的可能方式的数量,因此它不必重复爬取同一页面。让两个不同的标准化 URL 指向同一个页面是一个不同的问题。
-
@Robert Harvey 正确,但是发出两个 HEAD 请求 (1kb) 要好得多。
-
好吧,根据this,,您可以执行 HEAD 请求而不是 GET 请求,它应该只返回页眉。现在您需要做的就是在每个页眉中放置一些唯一的 ID 元素(如 GUID 或页 ID 号),然后您可以根据其他 HEAD 请求检查 ID 是否重复。
标签: html url duplicate-data