这里我有从几个不同的导航站点抓取的所有站点,其中一些是重复的,我的意思是,例如:
http://www.hao123.com/index.htm和 http://www.hao123.com
这是两个内容相同的站点,当然还有其他情况,比如少了一个斜线。单独使用 URL,我仍然将它们视为两个不同的站点。
我的问题是:是否有任何有效的方法可以将它们识别为一个站点?谢谢!
最佳答案
据我所知,没有万无一失的方法可以做到这一点。
话虽如此,一种方法可能是从每个 URL 加载内容,然后将 Levenshtein 距离算法应用于同一域名下的所有页面。然后,您可以设置一个阈值,以判断内容在被认为相同之前有多“相似”(好像内容略有变化,我想它的大部分仍然是相同的。)大约是页面长度的 10%可能是该值的一个很好的起点。
这可能相对较慢,具体取决于您拥有的站点数量,但会考虑到每次加载内容的细微差异,而简单的哈希或长度计算不会。
为了使其更加可靠,您可以检查某些内容在您预期的加载过程中是否相同(或不同),例如页面的标题。
关于java - 如何区分使用Java的站点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20973502/