Web scraping 防止Web刮取

Web scraping 防止Web刮取,web-scraping,data-collection,Web Scraping,Data Collection,我目前是一个开发包含前端客户端的应用程序团队的一员 通过这个客户机,我们发送用户数据,每个用户都有一个用户id,客户机通过RESTful API向服务器询问数据 例如,假设我们有一个图书数据库,用户可以得到作者最后写的3本书。我们重视用户的时间,我们希望用户能够在没有明确注册的情况下开始使用该产品 我们重视我们的数据库,我们使用我们自己的专有软件来填充它,并希望尽可能地保护它 所以基本上问题是: 我们能做些什么来保护自己不被网络抓取 我非常想了解一些保护我们数据的技术,我们想防止用户在作者搜索面

我目前是一个开发包含前端客户端的应用程序团队的一员

通过这个客户机,我们发送用户数据,每个用户都有一个用户id,客户机通过RESTful API向服务器询问数据

例如,假设我们有一个图书数据库,用户可以得到作者最后写的3本书。我们重视用户的时间,我们希望用户能够在没有明确注册的情况下开始使用该产品

我们重视我们的数据库,我们使用我们自己的专有软件来填充它,并希望尽可能地保护它

所以基本上问题是:

我们能做些什么来保护自己不被网络抓取

我非常想了解一些保护我们数据的技术,我们想防止用户在作者搜索面板中输入每个作者的名字,并取出每个作者写的前三本书

如有任何阅读建议,将不胜感激


我只想提一提,我们知道CAPTCHA,并希望尽可能避免它们

防止这种情况的主要策略是:

  • 需要注册,因此您可以限制每个用户的请求
  • 注册用户和非注册用户的验证码
  • IP的速率限制
  • 需要JavaScript-编写能够读取JS的刮刀更难
  • 机器人拦截和机器人检测(例如请求速率、隐藏链接陷阱)
  • 数据中毒。放进没有人想要的书和链接,这些书和链接会让盲目收集一切的机器人停止下载
  • 突变。经常更改模板,以便刮取器可能无法找到所需的内容
注意,您可以非常灵活地使用CAPTCHA


例如:每天每个IP的第一本书不受验证码保护。但是,为了访问第二本书,需要解决验证码问题。

因为您发现Anony Mouse列出的许多项目都不能解决您的问题,所以我想进来提出一个替代方案。您有没有研究过作为服务提供web抓取保护的第三方平台?我将列出市场上可用的一些解决方案,并尝试将它们组合在一起。为了充分披露,我是我正在上市的公司之一的联合创始人之一

网络抓取保护作为核心竞争力:

  • 蒸馏网络
  • 刺客哨兵
作为更大产品套件中的一项功能的Web抓取保护:

我的观点是,那些试图解决bot问题的公司并不能有效地解决这个问题。这并不是他们的核心竞争力,存在许多漏洞

  • Akamai科纳
  • F5 ASM模块至BigIP负载平衡器
  • Imperva Web应用防火墙设备
  • Incapsula,Imperva的云Web应用防火墙
讨论上述要点的一些缺陷也可能会有所帮助:

  • 注册用户和非注册用户的验证码由于OCR软件和验证码农场,验证码已被证明无效
  • IP的速率限制这可能会有很高的误报率,因为它将用户集中在共享IP后面。如果他们只是简单地旋转或注释他们使用的IP,也可能错过很多机器人
  • 需要JavaScriptSelenium、Phantom和数十种其他刮削工具呈现JavaScript

设置来自同一IP的请求的每日限制?要使用同一示例,某些库可能都使用相同的IP,我们希望库中的所有用户都能够同时使用该程序。请注意,数据挖掘(正确使用时)指的是分析,不是从网站上抓取数据。老实说,这并不能解决我的问题,但这个答案可能对其他在stackoverflow上遇到这个问题的人是好的,这就是为什么我接受它。我已经接受我的问题无法真正解决。你考虑过当达到某个阈值时开始显示验证码的方法吗?是的,用户讨厌它,我们可能会接受这样一个事实,即我们发送给自由用户的数据是公共域的。我又添加了两种技术。需要JavaScript(解码链接等)和变异(例如,模板的每日轮换,以便刮片器可能需要每天调整)更新,我没有看到您有Restful API,所以这不起作用。+1谢谢,这可能对人们有用。问题是“将web抓取保护作为一项服务使用”并没有解释技术解决方案。“Distil Networks”通常使用什么技术(如果我使用这样的服务,我不必实施这些技术)来真正帮助我对抗机器人?我们在Distil使用了几个步骤来识别和阻止网络爬虫。第一步是验证是否有人正在使用他们在用户代理中报告的浏览器。这是最容易做到的。它可以从确保最终用户运行javascript开始,但我们要做的不仅仅是确保每个浏览器的标题结构正确,多线程匹配,第二步是识别在浏览器或无头浏览器中运行的自动化工具。这很难做到,而且涉及到很多我无法确切披露的专有技术。我们所做的一些事情是注入隐藏的链接、隐藏的css等等,以实现自动化。最后一步是行为分析。我们使用机器学习来建立您的流量模式的行为模式,并发现您的典型使用中的机器人异常情况。希望这是有帮助的。我们的人也经常写博客,所以你可以查看博客了解更多细节:另一个第三方解决方案