Как обрабатывать request.exceptions.InvalidURL: не удалось проанализировать python? - PullRequest
0 голосов
/ 07 апреля 2020

Я новый пользователь 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 для запросов.

С наилучшими пожеланиями.

1 Ответ

1 голос
/ 07 апреля 2020

Вы столкнулись с ошибкой из-за новой версии urllib3 (некоторые пользователи сталкиваются с этой проблемой).

Ошибка связана не с requests, а с проблемой urllib3 (новая версия), которая устанавливается при установке requests 2.21.0+.
Чтобы избежать этого, попробуйте обновить 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 версия
...