Python爬虫:设置随机User-Agent模块fake-useragent介绍和使用。
模块简介
GitHub地址
https://github.com/hellysmile/fake-useragent
UA数据来源
目前1.5x的版本我看GitHub介绍数据是从 https://user-agents.net/ 下载的。下面的使用的部分示例是1.2或者1.3版本新增的功能,如果你在使用旧版本,建议升级。
不过之前不知道是GitHub还是其他地方看见介绍说是从useragentstring.com和Browser Statistics – w3schools.com和获取的相关User-Agent数据。(印象中之前的源码确实有这两个URL)
比较久之前看见的,也不深究了,也没实际意义嘛,但是之所以又写再这里,是当做一个User-Agent数据来源,有需要的就可以访问自取。
安装使用
安装模块
pip install fake-useragent
更新模块
pip install -U fake-useragent
更多模块管理的pip命令你可以看这篇文章:Python虚拟环境使用#使用pip管理包。
模块使用
查看版本
import fake_useragent
print(fake_useragent.VERSION)
生成随机UA
# 导入模块
from fake_useragent import UserAgent
# 实例化
ua = UserAgent()
# 生成随机UA
# 使用ua.random 方法,既可以随机生成各种浏览器的 UA。
uaeragent = ua.random
print(ua)
# 使用for循环生成十个随机useragent
for i in range(10):
print(ua.random)
生成指定浏览器随机UA
# 导入模块
from fake_useragent import UserAgent
# 实例化
ua = UserAgent()
# 可以指定自己的浏览器列表,可以通过参数browsers(默认值为:browsers["chrome", "edge", "internet explorer", "firefox", "safari", "opera"])执行此操作。
# 指定获取edge Chrome
ua = UserAgent(browsers=['edge', 'chrome'])
# 在 Fakeuser-agent GitHub 的介绍中 目前的浏览器数据有 Chrome、Edge、Firefox 和 Safari。其他不流行的浏览器则不再它的数据中。
ua.random
直接获取单个浏览器UA
# 导入模块
from fake_useragent import UserAgent
# 实例化
ua = UserAgent()
ua.chrome # chrome浏览器
# Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2'
# 其他浏览器
ua.google
# Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13
ua['google chrome']
# Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11
ua.firefox
# Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1
ua.ff
# Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0.1
ua.safari
# Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25
过时用法
在新版本中(我目前1.5.1)下面站这些浏览器数据已经没有了,如果使用会得到类似错误:Error occurred during getting browser: ie, but was suppressed with fallback.并返回一个最新版本的UA信息
print(ua.ie) # ie浏览器
# Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US);
print(ua.msie)
# Mozilla/5.0 (compatible; MSIE 10.0; Macintosh; Intel Mac OS X 10_7_3; Trident/6.0)'
print(ua['Internet Explorer'])
# Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US)
print(ua.opera)
# Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11
指定操作系统
如果需要指定操作系统,通过参数os设置:
from fake_useragent import UserAgent
# 只会获得 Linux UA:
ua = UserAgent(os='linux') # 默认值 os["windows", "macos", "linux"]
print(ua.random)
指定设备类型
如果需要指定设备类型,通过参数platforms设置:
from fake_useragent import UserAgent
# 只获取移动设备UA
ua = UserAgent(platforms='mobile') # 默认值 platforms["pc", "mobile", "tablet"]
print(ua.random)
异常解决
下面是在使用fake-useragent模块遇见异常和解决办法,如果你出现对应的情况可以参考:
fake-useragent模块报错:rror occurred during loading data. Trying to use cache server解决方法
更多问题和用法可访问GitHub查看官方文档解决。