我有一个关于网络机器人应用程序的问题。
网址: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/