Иногда возникает ошибка при парсинге

Занимаюсь парсингом сайта магазина через прокси. У меня иногда вылетает ошибка и я не знаю что мне с ней делать. код функции:

def PluInformation(id, cat, subcat, city_id, city):
    cookie = {
        'location_id': str(city_id)
    }
    header = {
        # Сюда помещаем наш user-agent

        'location_id': str(city_id),
        'header_name': 'X-Authorization',
        'user_ag': 'Mozilla/4.0 (compatible; MSIE5.01; Windows NT)'

    }
    try:
        r = tor.get(f'https://5ka.ru/api/v2/special_offers/{id}/', headers=header, cookies=cookie)
    except requests.exceptions.ProxyError:
        time.sleep(120)
        r = tor.get(f'https://5ka.ru/api/v2/special_offers/{id}/', headers=header, cookies=cookie)
    except http.client.RemoteDisconnected:
        print('первая ошибка при получении инф о товаре и выход')
        time.sleep(120)
        try:
            r = tor.get(f'https://5ka.ru/api/v2/special_offers/{id}/', headers=header, cookies=cookie)
        except http.client.RemoteDisconnected:
            print('вторая ошибка при получении инф о товаре и выход')
            return
    j = json.loads(r.text)
    print(id)
    print(j)
    category = cat.replace("'", "\'\'")
    sabcategory = subcat.replace("'", "\'\'")
    plu_name = j['name'].replace("'", "\'\'")
    id_code = id
    reg_price = j['current_prices']['price_reg__min']
    promo_price = j['current_prices']['price_promo__min']
    date_start = j['promo']['date_begin']
    date_end = j['promo']['date_end']
    store_id = city_id
    store_adress = city
    parse_date = datetime.now().strftime("%Y-%m-%d, %H:%M:%S")
    sku_image_url = j['img_link']
    plu_json = r.text.replace("'", "\'\'")

текст ошибки:

Traceback (most recent call last):
  File "D:\parser\lib\site-packages\urllib3\connectionpool.py", line 670, in urlopen
    httplib_response = self._make_request(
  File "D:\parser\lib\site-packages\urllib3\connectionpool.py", line 426, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "D:\parser\lib\site-packages\urllib3\connectionpool.py", line 421, in _make_request
    httplib_response = conn.getresponse()
  File "C:\Users\ABogdanov\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 1345, in getresponse
    response.begin()
  File "C:\Users\ABogdanov\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "C:\Users\ABogdanov\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "C:\Users\ABogdanov\AppData\Local\Programs\Python\Python39\lib\socket.py", line 704, in readinto
    return self._sock.recv_into(b)
  File "D:\parser\lib\site-packages\urllib3\contrib\pyopenssl.py", line 318, in recv_into
    raise SocketError(str(e))
OSError: (10060, 'WSAETIMEDOUT')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\parser\lib\site-packages\requests\adapters.py", line 439, in send
    resp = conn.urlopen(
  File "D:\parser\lib\site-packages\urllib3\connectionpool.py", line 726, in urlopen
    retries = retries.increment(
  File "D:\parser\lib\site-packages\urllib3\util\retry.py", line 446, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='5ka.ru', port=443): Max retries exceeded with url: /api/v2/special_offers/9248/ (Caused by ProxyError('Cannot connect to proxy.', OSError("(10060, 'WSAETIMEDOUT')")))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\ABogdanov\PycharmProjects\pythonProject\pyterochka\Pyterochka.py", line 159, in PluInformation
    
  File "D:\parser\lib\site-packages\requests\sessions.py", line 543, in get
    return self.request('GET', url, **kwargs)
  File "D:\parser\lib\site-packages\requests\sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)
  File "D:\parser\lib\site-packages\requests\sessions.py", line 643, in send
    r = adapter.send(request, **kwargs)
  File "D:\parser\lib\site-packages\requests\adapters.py", line 510, in send
    raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPSConnectionPool(host='5ka.ru', port=443): Max retries exceeded with url: /api/v2/special_offers/9248/ (Caused by ProxyError('Cannot connect to proxy.', OSError("(10060, 'WSAETIMEDOUT')")))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\parser\lib\site-packages\urllib3\connection.py", line 159, in _new_conn
    conn = connection.create_connection(
  File "D:\parser\lib\site-packages\urllib3\util\connection.py", line 84, in create_connection
    raise err
  File "D:\parser\lib\site-packages\urllib3\util\connection.py", line 74, in create_connection
    sock.connect(sa)
TimeoutError: [WinError 10060] Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\parser\lib\site-packages\urllib3\connectionpool.py", line 667, in urlopen
    self._prepare_proxy(conn)
  File "D:\parser\lib\site-packages\urllib3\connectionpool.py", line 932, in _prepare_proxy
    conn.connect()
  File "D:\parser\lib\site-packages\urllib3\connection.py", line 309, in connect
    conn = self._new_conn()
  File "D:\parser\lib\site-packages\urllib3\connection.py", line 171, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x0000024CA32015B0>: Failed to establish a new connection: [WinError 10060] Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\parser\lib\site-packages\requests\adapters.py", line 439, in send
    resp = conn.urlopen(
  File "D:\parser\lib\site-packages\urllib3\connectionpool.py", line 726, in urlopen
    retries = retries.increment(
  File "D:\parser\lib\site-packages\urllib3\util\retry.py", line 446, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='5ka.ru', port=443): Max retries exceeded with url: /api/v2/special_offers/9248/ (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000024CA32015B0>: Failed to establish a new connection: [WinError 10060] Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\ABogdanov\PycharmProjects\pythonProject\pyterochka\Pyterochka.py", line 219, in <module>
    if h == False:
  File "C:\Users\ABogdanov\PycharmProjects\pythonProject\pyterochka\Pyterochka.py", line 162, in PluInformation
    r = tor.get(f'https://5ka.ru/api/v2/special_offers/{id}/', headers=header, cookies=cookie)
  File "D:\parser\lib\site-packages\requests\sessions.py", line 543, in get
    return self.request('GET', url, **kwargs)
  File "D:\parser\lib\site-packages\requests\sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)
  File "D:\parser\lib\site-packages\requests\sessions.py", line 643, in send
    r = adapter.send(request, **kwargs)
  File "D:\parser\lib\site-packages\requests\adapters.py", line 510, in send
    raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPSConnectionPool(host='5ka.ru', port=443): Max retries exceeded with url: /api/v2/special_offers/9248/ (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000024CA32015B0>: Failed to establish a new connection: [WinError 10060] Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера')))

Я не так давно занимаюсь программированием. Не знаю как исключить эту ошибку правильно или как-то её обойти Ошибка появляется не всегда, точнее очень редко и неприятно. парсинг происходит через хороший платный прокси(маловероятно, что ошибка связанна с прокси, потому что одновременно происходит парсинг другого сайта и в том парсере эта ошибка появляется в другое время ) код в принципе идентичен.


Ответы (0 шт):