防止Web刮痧

Ben*_*aum 7 data-collection web-scraping

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

通过此客户端,我们发送用户数据,每个用户都有一个用户ID,客户端通过RESTful API与我们的服务器通信,询问服务器的数据.

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

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

所以基本上问题是:

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

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

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

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

Ano*_*sse 5

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

  • 需要注册,因此您可以限制每个用户的请求
  • 注册和未注册用户的验证码
  • IP的速率限制
  • 需要JavaScript-编写可以读取JS的刮板比较困难
  • 机器人阻止和机器人检测(例如请求率,隐藏的链接陷阱)
  • 数据中毒。放入没人希望拥有的书籍和链接,从而使盲目收集所有内容的漫游器的下载停滞不前。
  • 突变。经常更改您的模板,以使刮板可能找不到所需的内容。

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

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

  • 老实说,这并不能解决我的问题,但是这个答案可能对其他会在stackoverflow上遇到这个问题的人来说是个好主意,这就是为什么我接受它。我开始接受我的问题无法真正解决。 (2认同)