大多数情况下,需要设置请求头。而在请求头中,随机更换User-Agent可以避免触发相应的反爬机制。使用第三方库fake-useragent便可轻松生成随机User-Agent。
以下简单介绍fake-useragent的安装使用,以及可能出现的问题和解决方法。
安装:
pip install fake-useragent -i https://pypi.doubanio.com/simple
from fake_useragent import UserAgent
# 1、随机生成一个User-Agent
ua = UserAgent().random
headers = {'UserAgent': ua}
from fake_useragent import UserAgent
# 2、生成Chrome浏览器的User-Agent
ua = UserAgent().chrome
headers = {'UserAgent': ua}
# 3、生成Firefox浏览器的User-Agent
ua = UserAgent().firefox
headers = {'UserAgent': ua}
使用fake-useragent的过程中出现了FakeUserAgentError错误。在搜索到的很多解决方法都无效,包括:
禁用服务器缓存:ua = UserAgent(use_cache_server=False)
不缓存数据:ua = UserAgent(cache=False)
忽略 SSL 验证:ua = UserAgent(verify_ssl=False)
更新fake-useragent:pip install -U fake-useragent
原因: 下载是版本不一致哦!
pip list
a. 打开网页:http://fake-useragent.herokuapp.com/browsers/0.1.11
注意:https无法打开,0.1.11是版本号,可以进行修改,从而下载对应版本号的json文件
b. 右击另存为,把文件名改为 fake_useragent_0.1.11.json ,保存类型为所有文件
注意:下载的json文件名后面的版本号要与当前fake_useragent的版本号保持一致,不一样进行修改,否则后面会出错
代码中使用一个:UserAgent(path='./fake_useragent_0.1.11.json')
from fake_useragent import UserAgent
ua = UserAgent(path='./fake_useragent_0.1.11.json').random
headers = {'UserAgent': ua}