我对网络机器人应用程序有疑问。
网址一:http ://www.domain.com/path?id=1
网址 b:http ://www.domain.com/path?id=1&sessionid=XXXXXX
有两个 url 并转发到同一个 page.robot 应用程序下载该页面两次。
在我的机器人应用程序中,两个 URL 转换为 md5 值以检查是否被访问。但是 url 字符串改变了,所以 md5 值也改变了。访问过的缓存不能命中。
有更好的解决方案吗?
我对网络机器人应用程序有疑问。
网址一:http ://www.domain.com/path?id=1
网址 b:http ://www.domain.com/path?id=1&sessionid=XXXXXX
有两个 url 并转发到同一个 page.robot 应用程序下载该页面两次。
在我的机器人应用程序中,两个 URL 转换为 md5 值以检查是否被访问。但是 url 字符串改变了,所以 md5 值也改变了。访问过的缓存不能命中。
有更好的解决方案吗?
如果我是你,我会使用算法来计算内容的相似性,如果它们与配置的阈值相似,则将它们视为同一个文档。检查绝对相等(如 MD5SUM)将不起作用,因为动态内容(如时间戳)会破坏这种方案。
使用文档相似性是网络爬虫中的一种常用方法,以防止机器人一遍又一遍地下载基本相同的内容。
像Levenshtein Distance这样非常简单的相似度算法可以完成这项工作,但余弦相似度之类的算法更适合于此。