algorithm – 检测网页抓取的方法

algorithm – 检测网页抓取的方法,第1张

概述我需要在我的网站上检测信息的抓取.我尝试了基于行为模式的检测,虽然相对计算量很大,但似乎很有希望. 基础是收集某个客户端的请求时间戳,并将它们的行为模式与常见模式或预先计算的模式进行比较. 更准确地说,我将请求之间的时间间隔收集到数组中,按时间函数索引: i = (integer) ln(interval + 1) / ln(N + 1) * N + 1Y[i]++X[i]++ for cur 我需要在我的网站上检测信息的抓取.我尝试了基于行为模式的检测,虽然相对计算量很大,但似乎很有希望.

基础是收集某个客户端的请求时间戳,并将它们的行为模式与常见模式或预先计算的模式进行比较.

更准确地说,我将请求之间的时间间隔收集到数组中,按时间函数索引:

i = (integer) ln(interval + 1) / ln(N + 1) * N + 1Y[i]++X[i]++ for current clIEnt

其中N是时间(计数)限制,丢弃大于N的间隔.最初X和Y用1填充.

然后,在我在X和Y中得到足够数量之后,是时候做出决定了.标准是参数C:

C = sqrt(summ((X[i]/norm(X) - Y[i]/norm(Y))^2)/k)

其中X是某些客户数据,Y是公共数据,norm()是校准函数,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是非空元素X的平方根

C在范围(0..1)内,0表示没有行为偏差,1表示最大偏差.

类型1的校准最适合重复请求,类型2用于重复请求,间隔很少,类型3用于非常量请求间隔.

你怎么看?如果您对您的服务进行尝试,我将不胜感激.

解决方法 说实话,你的方法完全没有价值,因为它的琐碎旁路.攻击者甚至不必编写一行代码来绕过它.代理服务器是 free,您可以在亚马逊ec2上以新的IP地址启动新机器,每小时2美分.

更好的方法是Roboo,它使用cookie技术来阻止机器人.绝大多数机器人无法运行JavaScript或flash,这可以用来为您带来优势.

然而所有这些“(in)security though obscurity”,以及它可能起作用的唯一原因是因为你的数据不值得花费5分钟的程序员. (包括Roboo)

总结

以上是内存溢出为你收集整理的algorithm – 检测网页抓取的方法全部内容,希望文章能够帮你解决algorithm – 检测网页抓取的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1108696.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存