javascript - 检测同义链接

标签 javascript html url hyperlink

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

由于我抓取的网站是由人类编写的,因此链接样式和语法有所不同,即指向“http://home.page ”的链接而不是“http://home.page/ ”甚至“http://home.page/index.html ”。

显然,这些 URL 都引用同一页面,但由于它们的 URL 不相同,因此它们在我的数据库中存储为不同的条目。

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

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

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

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

我想知道是否有现有的启发式方法可以根据网络开发约定识别两个 URL 是否可能是同义的,谢谢!

最佳答案

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

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

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

我还应该注意到,许多页面在其元标记中指定了规范 URL。这是搜索引擎用来确定页面的正常 URL 的方法。但不能保证该信息会存在或正确。

关于javascript - 检测同义链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24494216/

相关文章:

javascript - 如何等待可观察对象完成以返回值?

javascript - 在 div 中查找 ul 并使用 jquery 将 li 标记附加到该 ul

URL 和 & 符号

javascript - 如何更改点击事件上的字形图标类?

javascript - 启用基于另一个输入下拉字段选择的输入字段

javascript - 重绘游戏循环内的所有内容是否需要过多的 Canvas ?

javascript - 是否有可能有一个隐藏的Javascript文件

c# - 使用 RegEx 拆分链接

arrays - 如何从文件夹中创建 url 数组(swift、audio)

javascript - 当弹出窗口关闭时,我将如何引发事件(jQuery 或 vanilla Javascript)?