fake_useragent模块没有正确连接- IndexError:列表索引超出范围



我试图使用fake_useragent模块与此块

from fake_useragent import UserAgent
ua = UserAgent()
print(ua.random)

但是当执行到ua = UserAgent()行时,它抛出这个错误

Traceback (most recent call last):
File "/home/hadi/Desktop/excel/gatewayform.py", line 191, in <module>
gate = GateWay()
File "/home/hadi/Desktop/excel/gatewayform.py", line 23, in __init__
ua = UserAgent()
File "/usr/local/lib/python3.9/dist-packages/fake_useragent/fake.py", line 69, in __init__
self.load()
File "/usr/local/lib/python3.9/dist-packages/fake_useragent/fake.py", line 75, in load
self.data = load_cached(
File "/usr/local/lib/python3.9/dist-packages/fake_useragent/utils.py", line 250, in load_cached
update(path, use_cache_server=use_cache_server, verify_ssl=verify_ssl)
File "/usr/local/lib/python3.9/dist-packages/fake_useragent/utils.py", line 245, in update
write(path, load(use_cache_server=use_cache_server, verify_ssl=verify_ssl))
File "/usr/local/lib/python3.9/dist-packages/fake_useragent/utils.py", line 178, in load
raise exc
File "/usr/local/lib/python3.9/dist-packages/fake_useragent/utils.py", line 154, in load
for item in get_browsers(verify_ssl=verify_ssl):
File "/usr/local/lib/python3.9/dist-packages/fake_useragent/utils.py", line 99, in get_browsers
html = html.split('<table class="w3-table-all notranslate">')[1]
IndexError: list index out of range

我使用linux,我已经安装了模块使用这个命令pip3 install fake_useragent --upgrade

这个问题有什么解决办法吗?如果没有,是否有更好的模块可以使用?

有一个解决方案,从Github拉请求#110。基本上,您所需要做的就是在fake_useragent/utils.py源代码的一行中更改一个字符。

要在您的系统上执行此操作,请使用管理员权限在您最喜欢的文本编辑器中打开/usr/local/lib/python3.9/dist-packages/fake_useragent/utils.py。转到第99行,更改w3
html = html.split('<table class="w3-table-all notranslate">')[1]
#                                    ^^ change this

tows:

html = html.split('<table class="ws-table-all notranslate">')[1]
#                                    ^^ to this

保存文件(使用管理员权限),重新启动Python会话,您的代码应该可以正常工作。


†查找utils.py所在的fake_useragent目录,运行以下代码:

import fake_useragent
print(fake_useragent.__file__)

例如,在我的Windows笔记本电脑上,打印出

'C:\Users\mattdmo\AppData\Roaming\Python\Python310\site-packages\fake_useragent\__init__.py'

所以要打开的文件夹是C:UsersmattdmoAppDataRoamingPythonPython310site-packagesfake_useragent

我尝试了UserAgent(use_cache_server=False, verify_ssl=False),但没有工作。

升级到0.1.13版本对我有效。

pip3 install fake-useragent==0.1.13

我尝试了pip install fake-useragent -U,但不知何故没有正确升级软件包。

来自包所有者:https://github.com/fake-useragent/fake-useragent/pull/136#issuecomment-1302431518

最新更新