Найти - Пользователи
Полная версия: requests.exceptions.TooManyRedirects: Exceeded 30 redirects
Начало » Python для новичков » requests.exceptions.TooManyRedirects: Exceeded 30 redirects
1
r4khic
Я парсю этот портал.Заголовок,дату и контент новости.И при парсинге использую python 3.7 библиотеку BS4

И вот при парсинге этого портала у меня выходит такая ошибка:
 Traceback (most recent call last):
  File "C:/Users/Администратор/PycharmProjects/Task/parser.py", line 124, in <module>
    call_all_func(resources)
  File "C:/Users/Администратор/PycharmProjects/Task/parser.py", line 104, in call_all_func
    item_page = get_html(resource_link)
  File "C:/Users/Администратор/PycharmProjects/Task/parser.py", line 14, in get_html
    r = requests.get(url)
  File "C:\Users\Администратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Users\Администратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Users\Администратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\Администратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\sessions.py", line 668, in send
    history = [resp for resp in gen] if allow_redirects else []
  File "C:\Users\Администратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\sessions.py", line 668, in <listcomp>
    history = [resp for resp in gen] if allow_redirects else []
  File "C:\Users\Администратор\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests\sessions.py", line 165, in resolve_redirects
    raise TooManyRedirects('Exceeded %s redirects.' % self.max_redirects, response=resp)
requests.exceptions.TooManyRedirects: Exceeded 30 redirects.
 Process finished with exit code 1
Вот строчка кода request запроса
 def get_html(url):
    r = requests.get(url)
    return r.text
Пробовал делать так
 def get_html(url):
    r = requests.get(url,allow_redirects=True)
    return r.text
Но это мне не помогло.

Я из ошибки понял только то,что превышено 30 перенаправлений.Как устранить эту ошибку ?

JOHN_16
Возможно имеет место быть циклическим редиректам. То есть странница ссылается на саму себя, и requests при попытке дойти до итоговой страницы превышает лимит запросов. Если так, то решение проблемы - игнорировать ошибку. Перехватывать ее.
r4khic
JOHN_16
Возможно имеет место быть циклическим редиректам. То есть странница ссылается на саму себя, и requests при попытке дойти до итоговой страницы превышает лимит запросов. Если так, то решение проблемы - игнорировать ошибку. Перехватывать ее.
Перехватывать ? В смысле использовать исключение try except ?
JOHN_16
да
r4khic
JOHN_16
да
Попробую,как проверю.Сразу вам отпишу
r4khic
JOHN_16
да
 # < Получаем html код.
def get_html(url):
    try:
        r = requests.get(url)
        return r.text
    except requests.exceptions.TooManyRedirects:
        print('')
Сделал так.В итоге появилась другая ошибка (TypeError: object of type ‘NoneType’ has no len()).Спасибо с решением моего вопроса
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB