如何处理requests.exceptions.InvalidURL:在python中解析失败?

2024-03-29 04:59:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的新用户。我不知道为什么,但请求总是引发InvalidURL异常:

>>> import requests
>>> r = requests.get('https://www.google.es/')

输出:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/requests/models.py", line 380, in prepare_url
    scheme, auth, host, port, path, query, fragment = parse_url(url)
  File "/usr/lib/python3/dist-packages/urllib3/util/url.py", line 392, in parse_url
    return six.raise_from(LocationParseError(source_url), None)
  File "<string>", line 3, in raise_from
urllib3.exceptions.LocationParseError: Failed to parse: https://www.google.es/

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.7/dist-packages/requests/api.py", line 76, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/requests/api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/requests/sessions.py", line 516, in request
    prep = self.prepare_request(req)
  File "/usr/local/lib/python3.7/dist-packages/requests/sessions.py", line 459, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "/usr/local/lib/python3.7/dist-packages/requests/models.py", line 314, in prepare
    self.prepare_url(url, params)
  File "/usr/local/lib/python3.7/dist-packages/requests/models.py", line 382, in prepare_url
    raise InvalidURL(*e.args)
requests.exceptions.InvalidURL: Failed to parse: https://www.google.es/

此错误与我给出的url无关。我该怎么处理

Python的请求版本为3.7.7和2.23.0

致以最良好的祝愿


Tags: inpyurlparserequestlibpackagesusr
3条回答

由于urllib3的新版本,您遇到了错误(一些用户倾向于面对这个问题)

错误不是由于requests引起的,而是在安装requests 2.21.0+时安装的urllib3(新版本)中的问题。
要避免这种情况,请尝试更新urllib3

python -m pip install  upgrade urllib3

或者安装requests v2.21.0

pip uninstall requests # to remove current version
pip install requests==2.21.0
  • 只需将其降级为v2.21.0版本

查看URL中是否有隐藏字符

我浪费了很多时间,这就是问题所在。。 当您从某处复制粘贴URL时,可能会发生这种情况

enter image description here

当URL不是有效的URL时,有时会发生这种情况。我有这个错误,几个小时后发现我在URL上的每个/之间有一个小空格。。。 所以我建议在请求时再写一次URL

相关问题 更多 >