7

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

通过这个客户端,我们发送用户数据,每个用户都有一个用户 ID,客户端通过 RESTful API 与我们的服务器对话,向服务器询问数据。

例如,假设我们有一个书籍数据库,用户可以获得作者最近写的 3 本书。我们重视用户的时间,我们希望用户无需明确注册即可开始使用该产品。

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

所以基本上问题是:

我们可以做些什么来保护自己免受网络抓取?

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

任何建议的阅读将不胜感激。

我只想提一下我们知道验证码,并希望尽可能避免它们

4

2 回答 2

5

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

  • 需要注册,因此您可以限制每个用户的请求
  • 注册和非注册用户的验证码
  • IP的速率限制
  • 需要 JavaScript - 编写一个可以读取 JS 的爬虫更难
  • 机器人拦截和机器人检测(例如请求率、隐藏链接陷阱)
  • 数据中毒。放入没人愿意拥有的书籍和链接,这会阻碍盲目收集所有内容的机器人的下载。
  • 突变。经常更改您的模板,这样爬虫可能无法找到所需的内容。

请注意,您可以非常灵活地使用验证码。

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

于 2013-01-17T16:43:31.467 回答
1

由于您发现 Anony-Mousse 列出的许多项目都不能解决您的问题,所以我想进来并提出替代方案。您是否探索过将网页抓取保护作为服务提供的第三方平台?我将列出市场上可用的一些解决方案,并尝试将它们放在一起。为了充分披露,我是Distil Networks的联合创始人之一,这是我要上市的公司之一。

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

  • 蒸馏网络
  • 森特刺客

Web Scraping 保护作为更大产品套件中的一项功能:

我的观点是,试图将机器人问题作为一项功能来解决的公司并没有有效地做好。只是不是他们的核心竞争力,存在很多漏洞

  • Akamai Kona
  • F5 ASM 模块到 BigIP 负载均衡器
  • Imperva Web 应用程序防火墙设备
  • Incapsula,Imperva 的云 Web 应用防火墙

谈谈上述几点的一些陷阱也可能会有所帮助:

  • 由于 OCR 软件和验证码农场,用于注册和非注册用户的验证码已被证明是无效的
  • IP 的速率限制 这可能具有非常高的误报率,因为它将用户集中在共享 IP 后面。如果他们只是轮换或匿名他们使用的 IP,也可能会错过很多机器人
  • 需要 JavaScript Selenium、Phantom 和许多其他抓取工具渲染 javascript
于 2013-10-17T20:31:08.437 回答