首先打开浏览器,按 F12 进入控制台(Console),然后输入:navigator.userAgent,即可看到 UA。例如:

1
2
51.0
 

userAgent无非不是欺骗服务器,我们自己本身类似于正常用户访问页面,拿取数据。

总结一下,UA 通常格式如下:

1
2
浏览器版本号
 
 
1
2
3
4
5
6
7
8
9
10
2000
XP
Vista
7
8
8.1
10
x64
x64
 

其中这个 WOW64 (Windows-on-Windows 64-bit)。它是 Windows 的子系统,让大多数 32 位的程序不用修改也能运行在 64 位系统上。

如果是 Linux 系统,用的人少,就不多说了。

1
2
3
4
版本
版本
版本
 

此外还可以加发行版名:X11; Ubuntu; Linux x86_64;

如果是 macOS(OS X、Mac OS X),形如:

1
2
3
4
x86_64
PowerPC
不用下划线,用点
 

最后面的部分就是系统版本。由于 Mac 的系统多次易名,这里只写出 OS X 和 mac OS 的版本号(10.8 之后系统名称均为加州景点),分别是 :

1
2
3
4
5
6
10.8.3
10.9.4
10.10.5
10.11.6
2017.02,更多的内容参考维基百科)
 

你可指明你是 Android、iPod、iPhone、iPad 等:

1
2
3
4
5
6
7
8
及以下
及以下
及以上
及以上
X
X
X
 

有的时候还可能看见加密等级的字符:

1
2
3
4
表示无安全
表示弱安全
表示强安全
 

引擎版本和浏览器版本号接下来细说。

据 StatCounter 统计,2017 年 1 月,各桌面浏览器的的使用分布为情况大致如下谈谈我们对userAgent的看法,为什么爬虫中需要userAgent?
可知,Google Chrome 占了六成,Firefox 和 IE(Edge) 差不多。三者占据了九成市场,那么接下来主要分析这三者的 UA。(如果想看国内市场情况,请访问 http://tongji.baidu.com/data/browser )

Chrome 的 UA

首先是 Google Chrome。以我的浏览器为

1
2
537.36
 

Mozilla/5.0 (Windows NT 10.0; WOW64),这部分不赘述了。
AppleWebKit/537.36 (KHTML, like Gecko)...Safari/537.36,历史上,苹果依靠了 WebKit 内核开发出 Safari 浏览器,WebKit 包含了 WebCore 引擎,而 WebCore 又从 KHTML 衍生而来。由于历史原因,KHTML 引擎需要声明自己是“类似 Gecko”的,因此引擎部分这么写。再后来,Google 开发 Chrome 也是用了 WebKit 内核,于是也跟着这么写。借用 Littern 的一句话:“Chrome 希望能得到为 Safari 编写的网页,于是决定装成 Safari,Safari 使用了 WebKit 渲染引擎,而 WebKit 呢又伪装自己是KHTML,KHTML 呢又是伪装成 Gecko 的。同时所有的浏览器又都宣称自己是 Mozilla。”。不过,后来 Chrome 28 某个版本改用了 blink 内核,但还是保留了这些字符串。而且,最近的几十个版本中,这部分已经固定,没再变过。

Chrome/56.0.2924.76 ,这部分才是 Chrome 的版本。56.0 是大版本,2924 是持续增大的一个数字,而 76则是修补漏洞的小版本。由于没找到版本号的规律,只能寄希望于别人记录了,查找得如下网站:
(1)谷歌Chrome 旧版本 (3~目前最新)
(2)Google Chrome (比较新的五六个版本)
(3)下载旧版本 Google Chrome (0.x ~46)

根据上述网站筛选出的数十个版本号,把版本号看成 xx.0.yyyy.zz ,通常一个 xx 只对应一两个 yyyy,但可能有多个 zz。不强求正确的情况下,可以随意指定 zz(zz通常0~200之间)或者都指定为 0,下列为约近 20 个大版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
58.0.2995.zz
57.0.2986.zz
56.0.2924.zz
55.0.2883.zz
54.0.2840.zz
53.0.2785.zz
52.0.2743.zz
51.0.2704.zz
50.0.2661.zz
49.0.2623.zz
48.0.2564.zz
47.0.2526.zz
46.0.2490.zz
45.0.2454.zz
44.0.2403.zz
43.0.2357.zz
42.0.2311.zz
41.0.2272.zz
40.0.2214.zz
39.0.2171.zz
38.0.2125.zz
37.0.2062.zz
 

Firefox 的 UA

第二部分便是 Firefox。说起来,Firefox 的 UA 相当容易伪造,根据 MDN 一篇文章内容指出格式如下:

1
2
firefoxversion
 

IE / Edge 的 UA

第三部分是 IE 

1
2
3
4
)
)
)
 

以上三个没啥好说的,都含有 MSIE(Microsoft Internet Explorer),其中 IE 8 开始加入 Trident 字符串。当使用兼容模式时,UA 如下,细看可知仅仅只是 MSIE 部分变了

1
2
)
 

然后从 IE9 开始,终于也改为了 “Mozilla/5.0”,前面这部分没变,后面越来越乱。可能包含 NET CLR 等内容。

1
2
3
4
)
)
)
 

IE10 和 IE9 差不多,可能包含 NET CLR 等内容:

1
2
3
)
)
 

最混乱的是 IE11,看着就像是 Gecko 内核(rv: 11.0),但是显然又不是(like Gecko)同时声明自己是 Trident/7.0 内核。移除了之前版本的“compatible”(兼容)和“MSIE”

1
2
Gecko
 

然后是 IE 继任者 Microsoft Edge ,UA 格式:

1
2
;
 

Edge 移除了以下内容

1
2
3
4
5
6
7
;
;
;
Touch
;
;
 

三大家说完了,其余的 Safari 浏览器和 Opera 浏览器也有一定的市场,但是大家应该也知道该怎么分析它们的 UA 了。另外国产的套壳浏览器可能会在 Chrome UA 的基础上再添加几个字符串。例如“QQBrowser”(QQ)、“BIDUBrowser”(百度)、“UBrowser”(UC)、“LBBROWSER”(猎豹)。当然也有某些浏览器 UA 完全等同于 Chrome UA,比如 3Q 大战后 360 浏览器的做法就是完全伪装成 Chrome,丧失了自己的名字。

参考内容,除上述内容外,主要还有:
1、 用户代理检测与浏览器Ua详细分析
2、 User-agent string changes

以下为按照上述规律伪造的 Win7 和 Win 10 上 Firefox 和 Chrome 的 UA,共计 66 个。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
41.0
42.0
43.0
44.0
45.0
46.0
47.0
48.0
49.0
50.0
51.0
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
41.0
42.0
43.0
44.0
45.0
46.0
47.0
48.0
49.0
50.0
51.0
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
537.36
48.0.2564.0

 

相关文章:

  • 2022-01-16
  • 2021-05-25
  • 2021-10-18
  • 2022-01-08
  • 2021-07-23
  • 2021-12-15
  • 2021-09-19
猜你喜欢
  • 2021-11-04
  • 2022-12-23
  • 2021-10-24
  • 2022-12-23
  • 2021-04-18
  • 2021-04-21
相关资源
相似解决方案