标签: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
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
原文地址:http://blog.csdn.net/laozhaokun/article/details/42024663