algorithm - 如何解决 Web 机器人应用程序中转发到同一页面的不同 URL

标签 algorithm url web-crawler

我有一个关于网络机器人应用程序的问题。

网址:http://www.domain.com/path?id=1

网址 b:http://www.domain.com/path?id=1&sessionid=XXXXXX

有两个 url 并转发到同一个页面。机器人应用程序下载该页面两次。

在我的机器人应用程序中,两个 URL 转换为 md5 值以检查是否被访问。但是 url 字符串改变了,所以 md5 值也改变了。访问过的缓存不能命中。

有什么更好的解决办法吗?

最佳答案

如果我是你,我会使用一种算法来计算内容的相似度,如果它们与配置的阈值相似,则将它们视为同一文档。检查绝对相等性(如 MD5SUM)将不起作用,因为动态内容(如时间戳)会破坏此类方案。

使用文档相似性是网络抓取中的一种常用方法,可以防止机器人一遍又一遍地下载基本相同的内容。

一个非常简单的相似度算法,如Levenshtein Distance可以完成这项工作,但类似于 cosine similarity会更适合这个。

关于algorithm - 如何解决 Web 机器人应用程序中转发到同一页面的不同 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16635987/

相关文章:

string - 字符串 "chunk"是否有名称说明?

algorithm - 来自(可能非常大的)列表的非空分组的不同总和数

java - 如何用 JSON 表示数据库中的图像

python - 如何重用Spider上的yield

c++ - 找到 vector 中所有值之间的相似距离并将它们子集化

algorithm - 分子动力学模拟 : fluctuating dipole model implementation

java - 为什么 java.net.URL 的哈希码会将主机解析为 IP?

elasticsearch - 如何在logstash中传递请求URL值以进行elasticsearch输出?

java - gwt 应用程序的爬虫花费太多时间

mysql - 如何平衡网页抓取的负载