我想跟踪所有访问者(操作系统,浏览器和更多详细信息)到我的网站。为此,我将用户代理和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 数据库中。