[英]LocationValueError when using python requests module
我一直在使用 requests 包與網絡交互,過去沒有任何問題。 最近在使用一個我大約一個星期沒有使用過的腳本時,我在執行常規requests.get()
調用時遇到了以下錯誤:
LocationValueError: No host specified.
在對python requests LocationValueError
各種排列進行大量谷歌搜索之后, python requests no host error
和python urllib3 LocationValueError
(根據堆棧跟蹤,錯誤是由請求在下面使用的urllib3
引發的)我只設法在urllib3
文檔中找到了這些信息:
異常 urllib3.exceptions.LocationValueError
當給定的 URL 輸入有問題時引發。
認為我的請求包版本可能有問題,因為這可以說是請求包中使用的最基本的調用之一,我執行了以下操作:
在所有情況下,我都使用以下代碼來查看請求是否仍在拋出 LocationValueError:
import requests
address = 'http://www.google.com/'
requests.get(address)
這在過去一直有效。 我在另一台計算機(一台 ubuntu 筆記本電腦)上檢查過,它在那里工作,讓我認為這個問題是我的計算機所特有的。
這是我在使用安裝在 virtualenv 和 python3.4 中的請求時得到的堆棧跟蹤。
In [5]: import requests In [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 對象獲取擴展會話的頁面時,也會發生此問題。
對我來說,問題是我被請求的 url 重定向到Location: https// ,這可能無效,但 urllib3 無法處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.