Python Исключение: пул прокси освобожден - PullRequest
0 голосов
/ 28 апреля 2020

заголовок - это ошибка моего кода. Я очищаю сайт, используя прокси-пул, именно библиотеку proxy_requests .

здесь код:

def artists(proxy, base = 'https://www.nameofthesite.com'):
   dict = {}
   for link in BeautifulSoup(requests.get(base).text, 'html.parser').findAll('a', attrs={'class': 'btn btn-menu'}, href=True):
        pr = proxy.get()
        r = requests.get('https:' + link['href'], proxies = {"http":pr,"https":pr}).text
        #other code ......

if__name__ == '__main__':

    from proxy_requests import ProxyRequests

    proxy = ProxyRequests('https://api.ipify.org')

    diz_art = artists(proxy)

Ниже полной ошибки.

  File "C:\Users\Marco\PycharmProjects\ortuproject\venv\lib\site-packages\urllib3\connectionpool.py", line 421, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "C:\Users\Marco\PycharmProjects\ortuproject\venv\lib\site-packages\urllib3\connectionpool.py", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "C:\Program Files\Python37\lib\http\client.py", line 1321, in getresponse
    response.begin()
  File "C:\Program Files\Python37\lib\http\client.py", line 296, in begin
    version, status, reason = self._read_status()
  File "C:\Program Files\Python37\lib\http\client.py", line 257, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "C:\Program Files\Python37\lib\socket.py", line 589, in readinto
    return self._sock.recv_into(b)
  File "C:\Program Files\Python37\lib\ssl.py", line 1049, in recv_into
    return self.read(nbytes, buffer)
  File "C:\Program Files\Python37\lib\ssl.py", line 908, in read
    return self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Marco\PycharmProjects\ortuproject\venv\lib\site-packages\requests\adapters.py", line 449, in send
    timeout=timeout
  File "C:\Users\Marco\PycharmProjects\ortuproject\venv\lib\site-packages\urllib3\connectionpool.py", line 720, in urlopen
    method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
  File "C:\Users\Marco\PycharmProjects\ortuproject\venv\lib\site-packages\urllib3\util\retry.py", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "C:\Users\Marco\PycharmProjects\ortuproject\venv\lib\site-packages\urllib3\packages\six.py", line 735, in reraise
    raise value
  File "C:\Users\Marco\PycharmProjects\ortuproject\venv\lib\site-packages\urllib3\connectionpool.py", line 672, in urlopen
    chunked=chunked,
  File "C:\Users\Marco\PycharmProjects\ortuproject\venv\lib\site-packages\urllib3\connectionpool.py", line 423, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "C:\Users\Marco\PycharmProjects\ortuproject\venv\lib\site-packages\urllib3\connectionpool.py", line 331, in _raise_timeout
    self, url, "Read timed out. (read timeout=%s)" % timeout_value
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='api.ipify.org', port=443): Read timed out. (read timeout=3.0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Marco\PycharmProjects\ortuproject\venv\lib\site-packages\proxy_requests\proxy_requests.py", line 71, in get
    proxies=proxies)
  File "C:\Users\Marco\PycharmProjects\ortuproject\venv\lib\site-packages\requests\api.py", line 76, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Users\Marco\PycharmProjects\ortuproject\venv\lib\site-packages\requests\api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Users\Marco\PycharmProjects\ortuproject\venv\lib\site-packages\requests\sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\Marco\PycharmProjects\ortuproject\venv\lib\site-packages\requests\sessions.py", line 643, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\Marco\PycharmProjects\ortuproject\venv\lib\site-packages\requests\adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.ipify.org', port=443): Read timed out. (read timeout=3.0)

Я заметил странные ошибки, такие как socket.timeout или timeouterror , но я не знаю, что это такое. важная спецификация: я запустил этот код на прошлой неделе и отлично работал. Кто-нибудь может помочь и подсказать мне другие решения? также другие методы ... спасибо в совете

...