我被抓了,如何防止呢?

问题描述 投票:2回答:1

[每周运行几次IIS 7,我发现来自某个地理位置的Google Analytics(分析)上的点击量很高。他们正在查看的url序列显然是由某种算法生成的,所以我知道我被抓取了内容。有什么办法可以防止这种情况?非常沮丧,谷歌不只是给我一个IP。

iis-7 web-scraping
1个回答
5
投票

[在反抓取世界中,有很多技术。我只是对它们进行分类。如果您发现我的答案中缺少任何内容,请发表评论。

A。基于Web请求的服务器端过滤

1。阻止一个或多个可疑IP。

阻止可疑IP的效果很好,但如今,大多数抓取操作都是使用IP代理完成的,因此从长远来看将是无效的。在您的情况下,您会从相同的IP地理位置收到请求,因此,如果您禁止此IP,则抓取程序肯定会利用IP代理,从而使IP独立且未被检测。

2。使用DNS级别过滤

使用DNS防火墙属于防刮擦措施。简短地说,这是为了将您的Web服务设置为专用域名服务器(DNS)网络,该网络将过滤并阻止错误请求到达您的服务器之前。一些公司为复杂的网站保护提供了这种复杂的措施,您可能会更深入地查看此类服务的an example

3。具有自定义脚本来跟踪用户的统计信息并丢弃麻烦的请求

正如您提到的那样,您已经检测到刮板抓取网址的算法。有一个自定义脚本来跟踪请求的URL,并以此为基础开启保护措施。为此,您必须在IIS中激活[shell]脚本。副作用可能是系统响应时间会增加,从而降低您的服务速度。顺便说一下,您检测到的算法可能会更改,从而使此措施无效。

4。限制请求频率

您可以设置请求频率或可下载数据量的限制。必须考虑到普通用户的可用性来应用限制。与刮板持久性请求相比,您可以设置Web服务规则以删除或延迟不需要的活动。但是,如果将scraper重新配置为模仿普通用户的行为(通过当今一些知名工具:Selenuim,Mechanize和iMacros),此措施将无法通过。

5。设置最大会话长度

此措施是一种好方法,但是通常现代的刮板确实会执行会话身份验证,因此中断会话时间并不是那么有效。

B。基于浏览器的识别和预防

1。为目标页面设置验证码

这是一种古老的技术,在很大程度上解决了刮擦问题。但是,如果您的拼板对手利用anti-captcha services的任何一项,则该保护很可能会关闭。

2。将JavaScript逻辑注入Web服务响应

JavaScript代码应在请求的html内容之前或与之一起到达客户端(用户的浏览器或抓取服务器)。此代码用于计数并向目标服务器返回某个值。根据此测试,html代码可能格式错误,甚至可能没有发送给请求者,因此可以避免恶意抓取程序。该逻辑可能放在一个或多个JavaScript可加载文件中。这种JavaScript逻辑不仅可以应用于整个内容,还可以应用于网站内容的某些部分(例如价格)。要绕过此措施,抓取工具可能需要使用甚至高度可定制且成本很高的more complex scraping logic(通常是JavaScript)。

C。基于内容的保护

1。将重要数据伪装成图像

今天这种内容保护方法被广泛使用。它确实防止刮板收集数据。它的副作用是,将隐藏在图像中的数据隐藏起来以供搜索引擎索引,从而降低了网站的SEO等级。如果刮板利用OCR系统,则可能会再次绕过这种保护。

2。页面结构频繁更改

这是刮擦保护的有效方法。它不仅可以更改元素idsclasses,而且还可以更改整个层次结构。后者涉及样式重组,因此会产生额外的成本。当然,如果要保留内容抓取功能,抓取器端必须适应新的结构。如果您的服务负担得起,副作用不会太大。

© www.soinside.com 2019 - 2024. All rights reserved.