Я использовал пакет запросов для взаимодействия с сетью и не имел проблем в прошлом. В последнее время при использовании сценария, который я не использовал в течение недели я столкнулся следующее сообщение об ошибке при выполнении рутинного requests.get()
вызова:LocationValueError при использовании модуля запросов python
LocationValueError: No host specified.
фона Исследование
После большого количества различных прибегая к помощи перестановкам python requests LocationValueError
, python requests no host error
и python urllib3 LocationValueError
(в соответствии с трассировкой стека ошибка поднятый urllib3
, который запрашивает использование внизу) мне удалось найти эту информацию похоронена в документации urllib3
:
exception urllib3.exceptions.LocationValueError
Raised when there is something wrong with a given URL input.
То, что я пытался
Думая что-то может быть не так с моей версией пакета запросов, как это, возможно, один из самых основных вызовов, используемых в пакете запросов я сделал следующее:
- переустановил запросы
- создания виртуальной среды и установленных запросов с использованием пипсов
- установленные запросы от источника
- Установка urllib3 expicitly
- установлен Python 3.4 из источника затем попытался что (я использую python3.5 на данный момент)
Во всех случаях я использовал следующий код, чтобы увидеть, был ли запрос еще метание 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 объект для получения страниц для расширенного сеанса.
Есть ли у вас локальные конфигурации dns? как пользовательские 'hosts' или что-то еще? прокси-сервер? брандмауэр? – sobolevn
Я использовал VPN в прошлом, но я все еще получаю ошибку, даже если она деактивирована. Кроме этого, я не изменил конфигурацию сети, так как я установил свою ОС. – Cottonbud
Можете ли вы позвонить с помощью 'urllib'? Asin, это специфично для модуля 'request'? И какую ОС вы используете? – Jarwin