从用户代理中识别爬网程序


Identify Crawlers From User Agent

我想跟踪所有访问者(操作系统,浏览器和更多详细信息)到我的网站。为此,我将用户代理和URL以及其他基本数据保存到数据库中。稍后在执行 Crone 时,分析用户代理并获取浏览器,操作系统。但我想识别爬虫(因为它们不能被视为访问者)。那么有没有办法从用户代理中识别爬虫。爬虫的用户代理是否遵循任何常见的模式?

您可以通过用户代理IP(子网)来识别它们。

第一种方法不可靠,因为任何人都可以识别为任何只是修改用户代理的爬虫。第二种方法显然更好。

这是网络上众多列表中的两个:http://www.user-agents.org/(见图例:R = 机器人、爬虫、蜘蛛) - http://www.robotstxt.org/db.html

另一个:http://www.karavadra.net/blog/2010/list-of-crawlers-bots-and-their-ip-addresses/

User-Agent字符串用于任何重要的事情都是不可靠的,也是一个坏主意。

任何恶意爬虫都可能会发送流行浏览器的 UA 字符串。适当的搜索引擎爬虫将始终发送可识别的 UA 字符串,但没有什么可以阻止我将我的 Web 浏览器配置为假装是这些爬虫之一。

如果必须执行此操作,请参阅 get_browser() 和值 if 返回的 crawler 元素。

Web 机器人

页面包含已知爬虫/机器人的列表,其中包括可用于识别行为良好(并在数据库中列出)的已知机器人的用户代理模式。

但正如DaveR所说,很难阻止无视规则的人,并不是每个爬虫都在 robotstxt.org 数据库中。