Python中使用fakeuseragent库报错如何解决
Error occurred during loading data. Trying to use cache server http://d2g6u4gh6d9rq0.cloudfront.net/browsers/fake_useragent_0.1.10.json
Traceback (most recent call last):
File “/usr/lib64/python3.4/urllib/request.py”, line 1183, in do_open
h.request(req.get_method(), req.selector, req.data, headers)
File “/usr/lib64/python3.4/http/client.py”, line 1137, in request
self._send_request(method, url, body, headers)
File “/usr/lib64/python3.4/http/client.py”, line 1182, in _send_request
self.endheaders(body)
File “/usr/lib64/python3.4/http/client.py”, line 1133, in endheaders
self._send_output(message_body)
File “/usr/lib64/python3.4/http/client.py”, line 963, in _send_output
self.send(msg)
File “/usr/lib64/python3.4/http/client.py”, line 898, in send
self.connect()
File “/usr/lib64/python3.4/http/client.py”, line 1279, in connect
super().connect()
File “/usr/lib64/python3.4/http/client.py”, line 871, in connect
self.timeout, self.source_address)
File “/usr/lib64/python3.4/socket.py”, line 516, in create_connection
raise err
File “/usr/lib64/python3.4/socket.py”, line 507, in create_connection
sock.connect(sa)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “/usr/lib/python3.4/site-packages/fake_useragent/utils.py”, line 67, in get
context=context,
File “/usr/lib64/python3.4/urllib/request.py”, line 161, in urlopen
return opener.open(url, data, timeout)
File “/usr/lib64/python3.4/urllib/request.py”, line 464, in open
response = self._open(req, data)
File “/usr/lib64/python3.4/urllib/request.py”, line 482, in _open
‘_open’, req)
File “/usr/lib64/python3.4/urllib/request.py”, line 442, in _call_chain
result = func(*args)
File “/usr/lib64/python3.4/urllib/request.py”, line 1226, in https_open
context=self._context, check_hostname=self._check_hostname)
File “/usr/lib64/python3.4/urllib/request.py”, line 1185, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error timed out>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “/usr/lib/python3.4/site-packages/fake_useragent/utils.py”, line 154, in load
for item in get_browsers(verify_ssl=verify_ssl):
File “/usr/lib/python3.4/site-packages/fake_useragent/utils.py”, line 97, in get_browsers
html = get(settings.BROWSERS_STATS_PAGE, verify_ssl=verify_ssl)
File “/usr/lib/python3.4/site-packages/fake_useragent/utils.py”, line 84, in get
raise FakeUserAgentError(‘Maximum amount of retries reached’)
fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached
Python中使用fakeuseragent库报错如何解决
fakeuseragent库报错通常是因为无法获取或解析在线User-Agent列表。最常见的是fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached错误。
根本原因:fakeuseragent默认从在线服务器获取User-Agent数据,当网络问题或服务器不可用时就会失败。
解决方案:
- 更新到最新版本:
pip install fake-useragent --upgrade
- 使用本地缓存(推荐):
from fake_useragent import UserAgent
# 设置缓存并禁用服务器更新
ua = UserAgent(cache=True, use_cache_server=False)
print(ua.random)
- 完全离线使用:
from fake_useragent import UserAgent
# 禁用所有网络请求
ua = UserAgent(cache=True, use_cache_server=False, verify_ssl=False)
print(ua.chrome) # 或 ua.random
- 如果还是不行,直接指定User-Agent:
# 备用方案:手动维护一个列表
user_agents = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15'
]
import random
print(random.choice(user_agents))
一句话建议:用本地缓存加禁用服务器更新就能解决大部分问题。

