我需要检测我网站上的信息抓取。我尝试基于行为模式进行检测,尽管相对计算量很大,但它似乎很有前景。检测网页抓取的方式
基础是收集某些客户端的请求时间戳,并将其行为模式与常用模式或预计算模式进行比较。
为了更精确,我收集请求分为阵列之间的时间间隔,通过时间的函数索引:
i = (integer) ln(interval + 1)/ln(N + 1) * N + 1
Y[i]++
X[i]++ for current client
其中N是时间(计数)的限制,间隔大于N被丢弃。最初X和Y都填满了。
然后,当我在X和Y中有足够数量的人后,就该做出决定了。标准是参数C:
C = sqrt(summ((X[i]/norm(X) - Y[i]/norm(Y))^2)/k)
,其中X为特定的客户端数据,Y是共同的数据,和范数()是校准函数,并且k是归一化系数,根据类型规范的()。有3种类型:
norm(X) = summ(X)/count(X), k = 2
norm(X) = sqrt(summ(X[i]^2), k = 2
norm(X) = max(X[i]), k is square root of number of non-empty elements X
C是在范围(0..1),0表示没有行为偏差和1是最大偏差。
1类型1的校准最适合重复请求,类型2用于重复间隔很少的请求,类型3用于非常量请求间隔。
您认为如何?我会很感激,如果你会尝试这种服务。
只是在搜索“scarping”的情况下,这是一个我不熟悉的术语。我认为你的意思是“刮”? – 2011-03-20 23:03:35
@Martin - 'screen-scraping'已被选为标签,因此我根据该标签进行了编辑。 – slugster 2011-03-20 23:07:46
我只能说:刮会永远存在。在未来,您至少应该考虑适合21世纪的商业模式。 – rook 2011-03-20 23:54:13