前言
fake-useragent
是爬虫中伪装useragent
参数的常用模块。然而,从中导入UserAgent
模块,并对其实例化时ua=UserAgent()
会出现错误:
fake-useragent Maximum amount of retries reached
问题分析
进入UserAgent
源代码,可以进入setting.py
文件,里面包含了fake-useragent
在线获取useragent
的逻辑。
其获取useragent的流程为:在CACHE-SERVER中在线下载包含了useragent的json文件,保存为DB变量中的fake_useragent_{version},存储路径为python的临时文件夹(通过tempfile.gettempdir()获得)。
出现上述问题,是由于DB无法获得在线的useragent的文件。
解决方案
将CACHE-SERVER中的文件手动下载到本地,保存到临时文件夹,DB变量就不会在线获取了,避免了联网过程,就避免了联网次数超时错误。
步骤1:下载CACHE-SERVER
的内容。
在浏览器中打开链接。注意:{version}改成你的fake-useragent模块的版本(下同)。我这里是0.1.11。
另存为 fake_useragent_{version}.json
,我的为fake_useragent_0.1.11.json
另存为即可。保存路径应该为python的临时存储路径,不知道的可以用以下方式查看。
import tempfile
print(tempfile.gettempdir())
接下来就正常了。