检测同义链接

时间:2014-06-30 15:55:20

标签: javascript html url hyperlink

我有一个最近网络抓取的链接网址数据库。 我正在开发可视化/路径查找套件,并且遇到了我的数据集的一个小问题。

由于我抓取的网站是由人类编写的,因此链接样式和语法各不相同,即指向“http://home.page”而非“http://home.page/”或“http://home.page/index.html”的链接。< / p>

显然这些网址都是指同一页面,但由于它们的网址不相同,因此它们会作为不同的条目存储在我的数据库中。

这使得页面之间的路径查找变得困难,因为无论您选择哪种样式,只检测到实际链接的一小部分。

我想知道是否要为给定的网址生成所有可能的“同义词”链接,或者更有可能检测这两个链接是否是同义的(指向同一页面),假设没有自定义路由规则已经适用。

我正在使用M.E.A.N. stack和d3.js用于可视化,因此JavaScript是首选语言。

要明确的是,我并没有真正要求对我设置数据库的方式提出批评(尽管建议总是受欢迎的),并且对重新运行爬行并不感兴趣。

我想知道是否存在可以识别两个URL是否可能是基于Web开发约定的同义词的现有启发式算法,谢谢!

1 个答案:

答案 0 :(得分:1)

http://home.pagehttp://home.page/是等效的,因为HTTP需要某种资源路径,因此浏览器会发送/

但是,http://home.page/http://home.page/index.html 必然等效,除非从一个重定向到另一个,否则您无法知道重写规则是什么在服务器上。

这里唯一可以做的就是比较内容,看它是否相同。然而,即使这样,也可能存在差异,因为页面通常是动态生成的。 (一个微不足道的差异的一个很好的例子是,当一些开发人员将页面生成时间放在页脚中时。这意味着不同URL的结果是不同的,即使它们从内容的角度来看基本相同。)

我还应该注意,很多页面的元标记都指定了规范的URL。这是搜索引擎用来确定页面的正常URL的内容。但无法保证这将存在或正确。