【问题标题】:I'm being scraped, how can I prevent this?我被刮了,我该如何防止这种情况?
【发布时间】:2020-07-25 02:21:00
【问题描述】:

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

【问题讨论】:

  • 离题了。他们来自萨马拉州?我会被这样的人猛烈抨击......
  • 不,美国大陆

标签: iis-7 web-scraping


【解决方案1】:

在反刮削世界中有很多技术。我只是将它们分类。如果您发现我的答案中缺少某些内容,请发表评论。

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

1。阻止可疑 IP 或 IP。

阻止可疑 IP 的效果很好,但如今大部分抓取都是使用 IP 代理完成的,因此从长远来看,它不会有效。在您的情况下,您会收到来自同一 IP 地理位置的请求,因此,如果您禁止此 IP,则抓取工具肯定会利用 IP 代理,从而保持 IP 独立且不被检测到。

2。使用 DNS 级别过滤

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

3。拥有自定义脚本来跟踪用户的统计数据并丢弃麻烦的请求

正如您所提到的,您已经检测到一种算法,一个抓取工具会抓取网址。有一个自定义脚本来跟踪请求 url 并基于此开启保护措施。为此,您必须在 IIS 中激活 [shell] 脚本。副作用可能是系统响应时间会增加,从而减慢您的服务。顺便说一句,您检测到的算法可能会发生变化,因此会关闭此措施。

4。限制请求频率

您可以设置请求频率或可下载数据量的限制。考虑到普通用户的可用性,必须应用这些限制。与抓取工具的持续请求相比,您可能会设置 Web 服务规则以丢弃或延迟不需要的活动。然而,如果刮板被重新配置以模仿常见的用户行为(通过一些当今知名的工具: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,还可以更改整个层次结构。后者涉及样式重组,因此会增加额外成本。当然,如果要保持内容抓取,抓取端必须适应新的结构。如果您的服务负担得起,则不会产生太大的副作用。

【讨论】:

  • @Ryan,您能否分享一下我的回答中的哪些特定部分对您有帮助?你要申请吗?如果已经应用它对您有多大帮助?我问你这个,因为我做网络抓取研究,然后将结果发布到 scraping.pro 博客。任何反馈都将是可观的!
  • 抱歉耽搁了。我一直在半定期地重组 html。我自己写了一个爬虫,我一直在尽我所能来挫败我自己的所有尝试。它比它应该的更有趣......
猜你喜欢
  • 2012-01-16
  • 2016-03-09
  • 1970-01-01
  • 2017-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-08
  • 1970-01-01
相关资源
最近更新 更多