前言

fake-useragent是爬虫中伪装useragent参数的常用模块。然而,从中导入UserAgent模块,并对其实例化时ua=UserAgent()会出现错误:

fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached

问题分析

进入UserAgent源代码,可以进入setting.py文件,里面包含了fake-useragent在线获取useragent的逻辑。

![在这里插入图片描述](https://img-blog.csdnimg.cn/b6592d50bff44b82a38fea69eafa9a56.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MTQ0MzQx,size_16,color_FFFFFF,t_70#pic_center)

其获取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。

![在这里插入图片描述](https://img-blog.csdnimg.cn/d67d693e4236416bba0ae9d58f98af56.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MTQ0MzQx,size_16,color_FFFFFF,t_70#pic_center)

另存为 fake_useragent_{version}.json ,我的为fake_useragent_0.1.11.json

另存为即可。保存路径应该为python的临时存储路径,不知道的可以用以下方式查看。

import tempfile
print(tempfile.gettempdir())

到这里就完成了~

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐