新手问题 如何判断是机器人还是人类

luffycn · 2014年10月04日 · 最后由 bydmm 回复于 2014年10月05日 · 17237 次阅读

如果有人用类似 Nokogiri::HTML(open(url)) 的方式来获取网页,如何知道这是机器人,还是人类主动用浏览器打开的?

使用 HTTP 的 user-agent 字段应该可以的。

IE

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT6.0)

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT5.2)

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT5.1)

Mozilla/4.0 (compatible; MSIE 5.0; WindowsNT)

其中,版本号是 MSIE 之后的数字。

Firefox

Mozilla/5.0 (Windows; U; Windows NT 5.2)Gecko/2008070208 Firefox/3.0.1

Mozilla/5.0 (Windows; U; Windows NT 5.1)Gecko/20070309 Firefox/2.0.0.3

Mozilla/5.0 (Windows; U; Windows NT 5.1)Gecko/20070803 Firefox/1.5.0.12

其中,版本号是 Firefox 之后的数字。

Opera

Opera/9.27 (Windows NT 5.2; U; zh-cn)

Opera/8.0 (Macintosh; PPC Mac OS X; U; en)

Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en)Opera 8.0

其中,版本号是靠近 Opera 的数字。

Safari

Mozilla/5.0 (Windows; U; Windows NT 5.2)AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1Safari/525.13

Mozilla/5.0 (iPhone; U; CPU like Mac OS X)AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93Safari/419.3

其版本号是 Version 之后的数字。

Chrome

Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML,like Gecko) Chrome/0.2.149.27 Safari/525.13

其中,版本号在 Chrome 之后的数字。

#1 楼 @besfan 这个字段爬虫是可以自定义的

你的目的是什么,为什么要判断。

把 token 用 js 调用。不执行 js 就没有 token 就是爬虫。

我乍一看还以为是问图灵测试

需要 登录 后方可回复, 如果你还没有账号请 注册新账号