gpt4 book ai didi

python - 使用 python 请求模块时的 LocationValueError

转载 作者:太空宇宙 更新时间:2023-11-04 03:23:11 25 4
gpt4 key购买 nike

我一直在使用请求包与网络交互,过去没有遇到任何问题。最近在使用我大约一周未使用的脚本时,在执行例行 requests.get() 调用时遇到以下错误:

LocationValueError: No host specified.

背景研究

经过大量谷歌搜索 python requests LocationValueErrorpython requests no host errorpython urllib3 LocationValueError 的各种排列(根据堆栈跟踪错误是由请求在下面使用的 urllib3 引发的)我只设法找到隐藏在 urllib3 文档中的信息:

exception urllib3.exceptions.LocationValueError

Raised when there is something wrong with a given URL input.

我尝试过的

认为我的请求包版本可能有问题,因为这可以说是请求包中使用的最基本的调用之一,我做了以下操作:

  • 重新安装请求
  • 创建虚拟环境并使用 pip 安装请求
  • 来自源的已安装请求
  • 显式安装 urllib3
  • 从源代码安装 python 3.4 然后尝试(我现在使用 python3.5)

在所有情况下,我都使用以下代码来查看请求是否仍在抛出 LocationValueError:

import requests
address = 'http://www.google.com/'
requests.get(address)

这在过去一直有效。我检查了另一台计算机(一台 ubuntu 笔记本电脑),它在那里工作,这让我认为这个问题是我的计算机特有的。

问题的堆栈跟踪

这是我在使用安装在 virtualenv 中的请求和 python3.4 时得到的堆栈跟踪。

In [5]: import requestsIn [6]: requests.get('http://www.google.com/')---------------------------------------------------------------------------LocationValueError                        Traceback (most recent call last) in ()----> 1 requests.get('http://www.google.com/')/home/michael/Documents/my_test_env/lib/python3.4/site-packages/requests/api.py in get(url, params, **kwargs)     67      68     kwargs.setdefault('allow_redirects', True)---> 69     return request('get', url, params=params, **kwargs)     70      71 /home/michael/Documents/my_test_env/lib/python3.4/site-packages/requests/api.py in request(method, url, **kwargs)     48      49     session = sessions.Session()---> 50     response = session.request(method=method, url=url, **kwargs)     51     # By explicitly closing the session, we avoid leaving sockets open which     52     # can trigger a ResourceWarning in some cases, and look like a memory leak/home/michael/Documents/my_test_env/lib/python3.4/site-packages/requests/sessions.py in request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)    466         }    467         send_kwargs.update(settings)--> 468         resp = self.send(prep, **send_kwargs)    469     470         return resp/home/michael/Documents/my_test_env/lib/python3.4/site-packages/requests/sessions.py in send(self, request, **kwargs)    574     575         # Send the request--> 576         r = adapter.send(request, **kwargs)    577     578         # Total elapsed time of the request (approximately)/home/michael/Documents/my_test_env/lib/python3.4/site-packages/requests/adapters.py in send(self, request, stream, timeout, verify, cert, proxies)    335         """    336 --> 337         conn = self.get_connection(request.url, proxies)    338     339         self.cert_verify(conn, request.url, verify, cert)/home/michael/Documents/my_test_env/lib/python3.4/site-packages/requests/adapters.py in get_connection(self, url, proxies)    247             proxy = prepend_scheme_if_needed(proxy, 'http')    248             proxy_manager = self.proxy_manager_for(proxy)--> 249             conn = proxy_manager.connection_from_url(url)    250         else:    251             # Only scheme should be lower case/home/michael/Documents/my_test_env/lib/python3.4/site-packages/requests/packages/urllib3/poolmanager.py in connection_from_url(self, url)    137         """    138         u = parse_url(url)--> 139         return self.connection_from_host(u.host, port=u.port, scheme=u.scheme)    140     141     def urlopen(self, method, url, redirect=True, **kw):/home/michael/Documents/my_test_env/lib/python3.4/site-packages/requests/packages/urllib3/poolmanager.py in connection_from_host(self, host, port, scheme)    246     247         return super(ProxyManager, self).connection_from_host(--> 248             self.proxy.host, self.proxy.port, self.proxy.scheme)    249     250     def _set_proxy_headers(self, url, headers=None):/home/michael/Documents/my_test_env/lib/python3.4/site-packages/requests/packages/urllib3/poolmanager.py in connection_from_host(self, host, port, scheme)    108     109         if not host:--> 110             raise LocationValueError("No host specified.")    111     112         scheme = scheme or 'http'LocationValueError: No host specified.

如果有人可以帮助解释错误原因或为我指出正确的方向,我们将不胜感激。当我使用 request.Session 对象获取扩展 session 的页面时,也会发生此问题。

最佳答案

对我来说,问题是我被请求的 url 重定向到 Location: https//,这可能是无效的,但 urllib3 无法处理。

关于python - 使用 python 请求模块时的 LocationValueError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33994095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com