我面临着机器人从我的网页复制所有内容的问题(我经常尝试更新)。
我尝试禁止它们,或者混淆代码以使其更难以复制。然而,他们找到了一些方法来克服这些限制。
我想尝试限制每分钟的点击次数(或 X 次,不一定是分钟),但使用验证码来克服这些限制。例如,如果您在过去 5 分钟内请求了超过 10 个页面,则需要使用验证码来证明您是人类。因此,如果该用户是合法用户,您将能够继续上网。
我只想在内容页面中执行此操作(以更有效地执行此操作)。我曾想过MemCached,但由于我不欠服务器,所以无法使用它。如果我使用 Servlet,我会使用 HashMap 或类似的,但由于我使用 PHP,我仍在尝试寻找解决方案。
我不认为 MySql(或数据库)是一个解决方案,因为我每秒可以有很多点击。我应该在几分钟后删除旧请求,从而创建大量不必要且低效的流量。
有什么想法吗?
摘要: 如果我在网页的某个部分每分钟获得太多点击,我想在 PHP 中使用 Captcha 有效地限制它。例如,如果您在过去 5 分钟内请求了超过 10 个页面,则需要使用验证码来证明您是人类。
最佳答案
你的问题有点违背互联网的精神。
- 每个人都复制/借用每个人
- 每个搜索引擎都有网络上其他所有内容的副本
我猜您遇到的问题是这些机器人正在窃取您的流量?如果是这样,我建议您尝试实现一个 API,允许他们合法地使用您的内容。
通过这种方式,您可以控制访问,最重要的是,您可以要求链接回您的网站,以换取使用您的内容。这样您的网站在内容方面应该排名第一。您甚至不需要 API 来实现此策略。
如果您坚持限制用户访问,您有以下选择:
- 使用 JavaScript 解决方案并使用 Ajax 将内容加载到页面中。即使这样也无法愚弄最好的机器人。
- 将您的所有内容置于用户名/密码系统中。
- 阻止违规 IP - 这是一场维护噩梦,您永远无法得到保证,但它可能会有所帮助。
问题是 - 如果您希望 Google 找到您的内容并仅限于其他机器人,那么您就是在问不可能的事。
您最好的选择是创建一个 API 并控制人们复制您的内容,而不是试图阻止它。
关于php - 有效限制 PHP 中每分钟的点击次数(阻止网页抓取或复制机器人),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12226650/