阻止网络抓取工具[重复]

问题描述 投票:0回答:6

网站可以通过哪些方式阻止网络抓取工具?如何确定您的服务器是否被机器人访问?

web-scraping web-crawler
6个回答
4
投票
  • 验证码
  • 不到一秒即可提交表格
  • 隐藏(通过CSS)字段获取表单提交期间提交的值
  • 频繁的页面访问

简单的机器人无法从 Flash、图像或声音中删除文本。


2
投票

不幸的是,您的问题类似于人们问如何阻止垃圾邮件。没有固定的答案,它不会阻止持续存在的某人/机器人。

但是,这里有一些可以实现的方法:

  1. 检查用户代理(但这可能是欺骗性的)
  2. 使用robots.txt(适当的机器人会 - 希望尊重这一点)
  3. 检测过于一致地访问大量页面的 IP 地址(每“x”秒)。
  4. 手动或在系统中创建标志,以检查谁正在访问您的网站并阻止抓取工具采取的某些路线。
  5. 不要在您的网站上使用标准模板,并创建通用 CSS 类 - 并且不要在代码中放入 HTML 注释。

1
投票

您可以使用 robots.txt 来阻止注意到它的机器人(但仍然允许通过其他已知实例,例如谷歌等) - 但这不会阻止那些忽略它的机器人。 您也许可以从 Web 服务器日志中获取用户代理,或者您可以更新代码以将其记录在某处。 如果您希望阻止特定用户代理访问您的网站,只需返回空/默认屏幕和/或特定服务器代码即可。


0
投票

我不认为有一种方法可以完全满足您的需要,因为在网站爬虫/抓取器中,您可以在请求页面时编辑所有标头,例如用户代理,并且您将无法识别是否存在来自 Mozilla Firefox 的用户或只是一个爬虫/爬虫...


0
投票

抓取工具在某种程度上依赖于页面加载之间标记的一致性。如果您想让他们的日子不好过,请想出一种方法来提供不同请求之间更改的标记。


0
投票

“不良行为”之类的内容可能会有所帮助:http://www.bad-behavior.ioerror.us/

来自他们的网站:

Bad Behaviour 旨在集成到您基于 PHP 的网站中,尽早运行,以便在垃圾邮件机器人有机会用垃圾邮件破坏您的网站,甚至抓取您的页面中的电子邮件地址之前将其剔除。以及需要填写的表格。

“不良行为”不仅可以阻止对您网站的实际破坏,还可以阻止许多电子邮件地址收集器,从而减少垃圾邮件,并阻止许多自动化网站破解工具,有助于提高您网站的安全性。

© www.soinside.com 2019 - 2024. All rights reserved.