1、 什么是User-Agent
User-Agetn是Http协议中的一部分,简单的说是浏览器向所访问网站提供你所使用的浏览器类型、操作系统、浏览器内核等信息的标识。通过这个标识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验,比如用手机打开网站会显示手机版的网页。
2、 Firefox中如何设置User-Agent
在Firefox中可以下载User Agent Switcher扩展来设置和切换UA,通过这个浏览器插件,可以很方便的切换为各类桌面操作系统的浏览器和移动端的浏览器,还可以模拟谷歌搜索爬虫。
如果你想知道自己的浏览器或者手机浏览器所使用UA是什么,可以访问如下地址查看:
http://useragentstring.com/
3、设置User-Agent可以干什么
不同的人有不同的用处,对于前端工程师可以模拟各类浏览器,查看不同浏览器的显示效果。
对于测试人员可以方便的测试各种浏览器是否能兼容。
有一些网站不喜欢被爬虫程序访问,所以会检测连接对象,如果是爬虫程序,也就是非人点击访问,它就会不让你继续访问,所以为了要让程序可以正常运行,需要隐藏自己的爬虫程序的身份。此时,我们就可以通过设置User Agent的来达到隐藏身份的目的。
User Agent存放于Headers中,服务器就是通过查看Headers中的User Agent来判断是谁在访问。在Python中,如果不设置User Agent,程序将使用默认的参数,那么这个User Agent就会有Python的字样,如果服务器检查User Agent,那么没有设置User Agent的Python程序将无法正常访问网站。
4、常用的浏览器请求头User-Agent
4.1 Windows/Firefox
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
4.2 Windows/IE
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
4.3 Windows/EDGE
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134
4.4 Windows/Chrome
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36
4.5 Linux/Firefox
Mozilla/5.0 (X11; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
4.6 Android/Firefox
Mozilla/5.0 (Android 9.0; Mobile; rv:63.0) Gecko/63.0 Firefox/63.0
4.7 Android/Chrome
Mozilla/5.0 (Linux; Android 9.0; Z832 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Mobile Safari/537.36
4.8 iPhone/Safari
Mozilla/5.0 (iPhone; CPU OS 10_14 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.1 Mobile/14E304 Safari/605.1.15
4.9 Google/bot
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
4.10 百度蜘蛛移动端
Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,like Gecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
4.11 百度蜘蛛PC端
Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
5、selenium设置chrome请求头
这里我写了一个例子,用来说明如何通过修改User Agent,伪装成手机来访问百度移动端的页面。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""User Agent example."""
from selenium import webdriver
# 进入浏览器设置
options = webdriver.ChromeOptions()
# 设置中文
options.add_argument('lang=zh_CN.UTF-8')
# 修改User Agent
options.add_argument('user-agent="Mozilla/5.0 (Android 9.0; Mobile; rv:63.0) Gecko/63.0 Firefox/63.0"')
browser = webdriver.Chrome(chrome_options=options)
browser.get("http://www.baidu.com")
browser.maximize_window()
browser.quit()
测试通过。
6、用第三方库来设置User Agent
在Python爬虫的过程中经常要模拟UserAgent, 因此自动生成UserAgent十分有用, fake-useragent库可以随机生成各种UserAgent。
# 安装
pip install fake-useragent
文档地址:
https://pypi.org/project/fake-useragent/