3

我们网站上的数据很容易被抓取。我们如何检测是否有人在查看网站或工具?

一种方法是计算用户在页面上停留的时间。我不知道如何实现。任何人都可以帮助检测和防止自动化工具从我的网站上抓取数据吗?

我在登录部分使用了安全图像,但即便如此,人类也可以登录然后使用自动化工具。当 recaptcha 图像在一段时间后出现时,用户可以键入安全图像,然后再次使用自动化工具继续抓取数据。

我开发了一个工具来抓取另一个网站。所以我只想防止这种情况发生在我的网站上!

4

6 回答 6

9

要这样做。

这是网络,如果他们真的想要,你将无法阻止他们抓取数据。我之前做过很多很多次,并且绕过了他们设置的每一个限制。事实上,有一个限制会激励我进一步尝试获取数据。

对系统的限制越多,合法用户的用户体验就越差。只是个坏主意。

于 2010-08-19T05:30:28.030 回答
3

这是网络。您需要假设您发布的任何内容都可以被人或机器读取。即使你今天可以阻止它,明天也会有人想出如何绕过它。 验证码已经被打破了一段时间,而且迟早会出现替代品。

但是,这里有一些暂时的想法。

这里还有一些

和我最喜欢的。我遇到的一个聪明的网站有一个很好的网站。它有一个问题,例如“在我们的“关于我们”页面上,我们支持办公室的街道名称是什么?或类似的东西。需要一个人才能找到“关于我们”页面(链接没有说“关于我们”它说的是类似的东西,但人们会发现)然后找到支持办公室地址,(不同于主要公司office 和页面上列出的其他几个)您必须查看几个匹配项。当前的计算机技术无法弄清楚它,就像它无法弄清楚真正的语音识别或认知一样。

谷歌搜索“验证码替代品”出现了很多。

于 2010-08-19T05:20:59.907 回答
1

我应该记下,如果有意愿,那么就有办法

话虽如此,我想到了您之前提出的问题,以下是我想出的一些简单的事情:

  1. 简单的幼稚检查可能是用户代理过滤和检查。您可以在此处找到常用爬虫用户代理列表:http ://www.useragentstring.com/pages/Crawlerlist/

  2. 你总是可以在闪存中显示你的数据,虽然我不推荐它。

  3. 使用验证码

除此之外,我不确定您是否还能做任何其他事情,但我也有兴趣看到答案。

编辑:

谷歌做了一些有趣的事情,如果你正在寻找 SSN,在第 50 页左右之后,他们会进行验证。它引出了一个问题,看看您是否可以智能地计算用户在您的页面上花费的金额,或者如果您想将分页引入等式,即用户在一个页面上花费的时间。

使用我们之前假设的信息,可以在发送另一个 HTTP 请求之前设置一个时间限制。此时,“随机”生成验证码可能是有益的。我的意思是,也许一个 HTTP 请求会顺利通过,但下一个请求需要验证码。您可以随意切换它们。

于 2010-08-19T05:26:20.720 回答
1

如果不冒误报(和烦人的用户)的风险,就无法做到这一点。

我们如何检测是否有人在查看网站或工具?

你不能。您将如何处理为人类解析页面的工具,例如屏幕阅读器和可访问性工具?

例如,一种方法是通过计算用户停留在页面中的时间,我们可以从中检测是否涉及人为干预。我不知道如何实现,只是想着这个方法。谁能帮助如何检测和防止自动化工具从我的网站上抓取数据?

您不会检测到自动工具,只会检测到异常行为。在你定义异常行为之前,你需要找到什么是常见的。人们以不同的顺序查看页面,浏览器选项卡允许他们执行并行任务等。

于 2010-08-19T05:36:25.457 回答
1

抓取工具通过解析 URL 和读取页面源代码从您的网站窃取数据。如果不是不可能的话,可以采取以下步骤至少使刮削有点困难。

Ajax 请求使解析数据变得困难,并且需要额外的努力来获取要解析的 URL。

即使对于不需要任何身份验证的普通页面也使用cookie,一旦用户访问主页就创建cookie,然后所有内页都需要它。这使得抓取有点困难。

在网站上显示加密代码,然后在加载时使用 javascript 代码对其进行解密。我在几个网站上看到过。

于 2010-08-19T05:37:10.100 回答
0

我想唯一好的解决方案是限制可以访问数据的速率。它可能无法完全阻止抓取,但至少您可以限制自动抓取工具的工作速度,希望低于阻止抓取数据的水平。

于 2010-08-19T05:25:36.083 回答