![如何处理欺骗性用户代理?爬虫程序伪装成蜘蛛](https://linux22.com/image/543471/%E5%A6%82%E4%BD%95%E5%A4%84%E7%90%86%E6%AC%BA%E9%AA%97%E6%80%A7%E7%94%A8%E6%88%B7%E4%BB%A3%E7%90%86%EF%BC%9F%E7%88%AC%E8%99%AB%E7%A8%8B%E5%BA%8F%E4%BC%AA%E8%A3%85%E6%88%90%E8%9C%98%E8%9B%9B.png)
我一直在跟踪我们日志中的几个蜘蛛,并对它们的 IP 进行了跟踪路由,发现它们实际上是 EC2 实例。用户代理被列为 Google 机器人和 msnbot,但它们不是 Google 或 MS IP。我能做些什么吗,欺骗用户代理是一种常见的做法吗?我猜如果我禁止他们的 IP(我已经这样做了),他们只会启动一个新实例并继续运行。但我不想禁止所有 EC2 实例。
答案1
当您真正开始深入研究日志时,您会发现大量的机器人会进行标头欺骗;其中大多数以 IE 进行欺骗(其中一些没有成功;拼写错误会很快发现您的代理字符串!)。
有一个有趣的 EFF 实验,它研究如何使用浏览器呈现的数据唯一地识别用户:全景式。在应用程序级别收集更多信息以尝试阻止可能会让您获得一些帮助,因为非浏览器节点将无法返回其中一些字段。
但是,就像阻止他们的 IP 不太可能长期有效一样,如果他们执意要抓取您的数据,那么尝试基于用户代理(或任何其他独特标准)进行阻止也不太可能长期有效。最后,尝试阻止网络上的每个流氓机器人并不值得您花费时间和精力;只需设置您的 robots.txt 文件,留意那些试图使用 SQL 注入或类似方法攻击您的恶意机器人,然后就可以高枕无忧了。