首页 > 代码库 > User-Agent分析及其价值简析
User-Agent分析及其价值简析
User-Agent,用户代理。用户在上网访问的时候会作为HTTP的包头的一部分向服务器发送,用于识别用户的当前环境,如浏览器及版本号、操作系统等信息。在Chrome中可以在访问网站的时候按下F12查看。
比如我在使用的Chrome的User-Agent:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36
Mozilla/5.0 :以前用于Netscape浏览器,目前大多数浏览器UA都会带有。
Windows NT 6.1:代表windows7系统。
WOW64:Windows-on-Windows 64-bit,32位的应用程序运行于此64位处理器上。[1]
AppleWebKit/537.36:浏览器内核[2]。
KHTML:一个HTML排版引擎。
like Gecko:这不是Geckeo 浏览器,但是运行起来像Geckeo浏览器。
Chrome/36.0.1985.125:Chrome版本号。
Safari/537.36:宣称自己是Safari?
判断PC浏览器品牌:
可先判断系统平台,再来判断浏览器。
IE:带有MSIE可认为是IE浏览器。
User-Agent:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)
User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Safari:仅出现Safari字样。
User-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50
Firefox:仅出现Firefox字样。
Firefox 4.0.1 – Windows User-Agent:Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Opera:出现Opera字样。
User-Agent:Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11
Chrome:仅出现Chrome、Safari字样。
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11
Maxthon:出现Maxthon。
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)
TencentTraveler:
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)
世界之窗:
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; The World)
360:360SE
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)搜狗:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 SE 2.X MetaSr 1.0
Avant:
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser)package com.asiainfo.zhf; import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.Text; import eu.bitwalker.useragentutils.UserAgent; public class ParseUserAgent_UDF extends UDF{ public Text evaluate(final Text userAgent){ StringBuilder builder = new StringBuilder(); UserAgent ua = new UserAgent(userAgent.toString()); builder.append(ua.getOperatingSystem()+"\t"+ua.getBrowser()+"\t"+ua.getBrowserVersion()); return new Text(builder.toString()); } }
andriod的比较复杂,不过信息量丰富,有些可以看到手机品牌、型号。比如:
Mozilla/5.0 (Linux; Android 4.4.2; HUAWEI P6 S-U06 Build/HuaweiP6S-U06) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 AliApp(TB/5.1.3) WindVane/5.6.6 TBANDROID/227200@taobao_android_5.1.3 720X1184 QQMusic 4050102(android 4.3) Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; HUAWEI C8813Q Build/HuaweiC8813Q) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 Weibo (HUAWEI-HUAWEI C8813Q__weibo__4.3.5__android__android4.1.2) %E8%85%BE%E8%AE%AF%E6%96%B0%E9%97%BB445(android) --》腾讯新闻445(android)基于观察,发现android的手机型号多数位于ua中的第一个括号中的倒数第二个位置,下面试着将其解析,同样写成hive函数的形式,便于在hive中利用。
public Text evaluate(final Text userAgent){ String str = parse(userAgent.toString()); return new Text(str); } public String getFromRegrex(String str,String pattern,int index){ Pattern p = Pattern.compile(pattern); Matcher matcher = p.matcher(str); while(matcher.find()) str = matcher.group(index); return str; } public String parse(String userAgent){ String pattern1 = "(.*) AppleWebKit"; String pattern2 = ".* "; String str = getFromRegrex(userAgent,pattern1,1); String params[] = str.split(";"); return getFromRegrex(params[params.length-1],pattern2,0).trim(); }这样经过查询,可以得到某地区某天的上网人数中使用android手机型号数的排行榜:
GT-N7100 96002 MI 3 72004 GT-I9500 58310 GT-I9300 48464 MI 2S 38417 SM-N900 31373 SM-N9006 27178 GT-I9508 24072 HM NOTE 1LTETD 22243 SM-N9008 21817 GT-N7108 21516 SM-N9009 19978 MI 3W 19175 MI 2 18545
可以看出,三星和小米占大头。
ios App默认的UA格式:App名/版本号 CFNetwork/版本号 Darwin/版本号".
%E7%BE%8E%E9%A2%9C%E7%9B%B8%E6%9C%BA/3.0.1 CFNetwork/672.1.15 Darwin/14.0.0 --》美颜相机/3.0.1 CFNetwork/672.1.15 Darwin/14.0.0
基于如上规则,可以查出ios应用的使用排行,下面ios App是在某地区某天的使用人数(cookie、ip均不同则算一个人):
DPScope 1885255 IHexin 992702 QQ 954482 PPStream_2.5.2 579123 BaiduBoxApp 533368 Taobao4iPhone 401745 BaiduVideo-iPad 280836 DuShuBusHD 259936 CTRIP_WIRELESS 232708 TBClient 223778 IphoneCom 215576 Weibo 174699 BaiduIphoneVideo 169767 BaiduBoxAppDistribution 122065 IPadQQ 67418 weshoothd 62836 AmHexinForPad 58517 TmallClient-iPad 50073可以看出,除了qq、baidu等使用大众产品之外的人很多外,炒股的人也很多!
[1]http://baike.baidu.com/view/826224.htm
[2]http://tools.yesky.com/19/34456519.shtml 浏览器内核Trident/Gecko/WebKit/Presto
User-Agent分析及其价值简析
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。