Rya*_*yan 2 iis-7 web-scraping
运行IIS 7,每周几次,我从一个地理位置看到Google Analytics上的大量点击.他们正在查看的网址序列显然是由某种算法生成的,因此我知道我正在抓内容.有什么方法可以防止这种情况吗?非常沮丧,谷歌不仅仅给我一个IP.
反刮世界中有很多技术.我只是将它们分类.如果您在我的回答中找不到遗漏,请发表评论.
阻塞可疑IP效果很好,但今天大多数抓取都是使用IP代理完成的,所以从长远来看它不会有效.在您的情况下,您从相同的IP地理位置获得请求,因此如果您禁止此IP,则刮刀肯定会利用IP代理,从而保持IP独立且未被检测到.
使用DNS防火墙属于防刮措施.简而言之,这就是将您的Web服务设置为专用域名服务器(DNS)网络,该网络将在到达您的服务器之前过滤和防止错误请求.一些公司为复杂的网站保护提供了这种复杂的措施,您可能会更深入地查看此类服务的示例.
正如您所提到的,您已经检测到一种算法,刮刀会抓取网址.有一个跟踪请求URL的自定义脚本,并基于此打开保护措施.为此,您必须在IIS中激活[shell]脚本.副作用可能是系统响应时间会增加,从而减慢您的服务速度.顺便说一下,您检测到的算法可能会被更改,从而使该测量值无法实现.
您可以设置请求频率或可下载数据量的限制.考虑到普通用户的可用性,必须应用这些限制.与刮刀持续请求相比,您可以将Web服务规则设置为丢弃或延迟不需要的活动.然而,如果刮刀被重新配置以模仿普通用户行为(通过一些现在众所周知的工具:Selenuim,Mechanize,iMacros),这个措施将失败.
这个措施是一个很好的措施,但通常现代刮刀确实执行会话认证,因此切断会话时间并不是那么有效.
这是旧时代的技术,大多数情况下确实解决了刮擦问题.然而,如果你的抓斗对手利用任何反验证码服务,这种保护很可能会被取消.
JavaScript代码应在请求的html内容之前或之后到达客户端(用户的浏览器或抓取服务器).此代码用于计算特定值并将其返回给目标服务器.根据此测试,html代码可能格式不正确,甚至可能无法发送给请求者,从而导致恶意刮刀关闭.逻辑可以放在一个或多个可加载JavaScript的文件中.这种JavaScript逻辑不仅可以应用于整个内容,还可以仅应用于网站内容的某些部分(例如价格).为了绕过这个措施,刮刀可能需要转向更加复杂的抓取逻辑(通常是JavaScript),这种逻辑是高度可定制的,因此成本很高.
这种内容保护方法如今被广泛使用.它确实可以防止刮刀收集数据.它的副作用是数据被混淆为图像被隐藏用于搜索引擎索引,从而降低了网站的搜索引擎优化.如果刮刀利用OCR系统,则可以再次绕过这种保护.
这是刮擦保护的有效方法.它不仅可以更改元素ID和类,还可以更改整个层次结构.后者涉及造型重组,因此增加了额外成本.当然,如果想要保持内容刮擦,刮刀侧必须适应新结构.如果您的服务可能负担得起,副作用不大.