从用户代理识别爬网程序

时间:2012-06-12 11:34:39

标签: php web-crawler

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

3 个答案:

答案 0 :(得分:2)

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

第一种方法不可靠,因为任何人都可以识别任何Crawler只修改User-Agent。 第二种方法显然更好。

这是网络上众多列表中的两个: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/

答案 1 :(得分:1)

使用User-Agent字符串表示重要的内容是不可靠的,也是个坏主意。

任何恶意抓取工具都可能会发送流行浏览器的UA字符串。正确的搜索引擎抓取工具总是会发送一个可识别的UA字符串,但是没有什么可以阻止我配置我的网络浏览器伪装成其中一个抓取工具。

如果您必须这样做,请参阅get_browser()以及值的crawler元素(如果返回)。

答案 2 :(得分:1)

Web Robots Page包含list of known crawlers/robots,其中包含可用于识别行为良好(并在数据库中列出)的已知机器人的用户代理模式。

但正如DaveR所说,很难阻止忽视这些规则的人,而且并非每个爬虫都在robotstxt.org数据库中。