Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理requests.exceptions.InvalidURL:在python中解析失败?_Python_Python Requests_Python 3.7 - Fatal编程技术网

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

如何处理requests.exceptions.InvalidURL:在python中解析失败?,python,python-requests,python-3.7,Python,Python Requests,Python 3.7,我是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 pr

我是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/
回溯(最近一次呼叫最后一次):
文件“/usr/local/lib/python3.7/dist packages/requests/models.py”,第380行,在prepare\u url中
方案、身份验证、主机、端口、路径、查询、片段=解析url(url)
文件“/usr/lib/python3/dist packages/urllib3/util/url.py”,第392行,位于parse_url中
返回6.raise\u from(LocationParseError(source\u url),无)
文件“”,第3行,从
urllib3.exceptions.LocationParseError:未能分析:https://www.google.es/
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/local/lib/python3.7/dist-packages/requests/api.py”,第76行,在get中
返回请求('get',url,params=params,**kwargs)
文件“/usr/local/lib/python3.7/dist-packages/requests/api.py”,请求中的第61行
return session.request(method=method,url=url,**kwargs)
文件“/usr/local/lib/python3.7/dist-packages/requests/sessions.py”,请求中的第516行
准备=自我准备请求(req)
文件“/usr/local/lib/python3.7/dist packages/requests/sessions.py”,第459行,在prepare\u请求中
钩子=合并钩子(request.hooks,self.hooks),
文件“/usr/local/lib/python3.7/dist packages/requests/models.py”,第314行,在prepare中
self.prepare_url(url,参数)
文件“/usr/local/lib/python3.7/dist packages/requests/models.py”,第382行,在prepare\u url中
提出无效URL(*e.args)
requests.exceptions.InvalidURL:未能分析:https://www.google.es/
此错误与我给出的url无关。我该怎么处理

Python的请求版本为3.7.7和2.23.0


致以最诚挚的问候。

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

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

python -m pip install --upgrade urllib3
或者安装
请求v2.21.0

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

查看URL中是否有隐藏字符

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


当URL无效时,有时会发生这种情况。我有这个错误,几个小时后发现我在URL上的每个/之间有一个小空格。。。
因此,我建议在requests.get上重新编写URL。不要犯这个错误。

尝试
r=requests.request('get','https://www.google.es/“)
@InfinityTM,我尝试使用“GET”作为第一个参数,但异常为:requests.exceptions.InvalidURL:未能为我解析:GETWorks。请贴一张合适的照片。注意:您可能需要确保此时您的代码
请求
确实符合您的期望(只需在通话前添加
打印(请求)
,并检查您的have)。这是urllib3try安装requests v2.21.0的问题,谢谢@tomer cohen,但我在前面的评论中注意到urllib3版本有问题。当然,只是添加了这个,因为这是我的问题,我没有找到任何解决方案