Python3 запрашивает прокси (Socks5) - PullRequest
0 голосов
/ 10 октября 2019

Редактировать: Я не знаю, так ли это, но часто это происходит, когда я много тестирую и у меня запущено много скриптов на python. Обычно ни один из них не активен в одно и то же время, но я запустил несколько из них за короткий промежуток времени. Я не знаю, поэтому ли это начинает происходить ошибка.

Хорошо, вот моя дилемма. У меня есть учетная запись NordVPN, и я хочу случайно просмотреть IP-адреса для запросов, которые я делаю в Google. Это отлично работает .. иногда. По какой-то причине после нескольких пингов запроса моя программа начинает замедляться, а затем я получаю ошибки «Максимальное превышение числа подключений», и, насколько я могу судить, IP-адреса в порядке.

Я начал думать, что Google блокируетIP, но затем я запрашиваю на другой веб-сайт, и та же ошибка продолжается .. Я начал думать, что, возможно, прокси-сервер разрешает только определенное количество запросов в определенный период времени, поэтому я попробовал несколько бесплатных прокси, но я снова получаю те же ошибки .. В любом случае, если я ненадолго оставлю его в покое, кажется, что он работает нормально, а затем несколько десятков пингов и ошибки начинаются снова.

Единственное, о чем я могу думать, и не уверен, как я могу проверить или дажеЕсли возможно удаленное тестирование (рабочий маршрутизатор), возможно, что некоторые открытые соединения остаются открытыми и влияют на мой код, а затем, когда выбрасывается отставание открытых соединений, я могу возобновить работу в обычном режиме. Я начал искать, нужно ли мне «закрывать» мое соединение после моего запроса get, но это не кажется необходимым (хотя я даже не был уверен, что искал).

Это одна из версиймой код, я пробовал без сессий, я пробовал другой способ написания сессий. Кажется, что все работают одинаково:

import requests, random

username = 'xxx'
password = 'yyy'

with open('proxies.txt', 'r') as p:
    proxy_lost = p.read().splitlines()
with open('data.txt', 'r') as d:
    data = d.read().splitlines()

for i in data:
    result = None
    while result is None:
        try:
            proxy = proxy_list[random.randint(0,len(proxy_list)-1)] + '.nordvpn.com'
            prox = 'socks5://{}:{}@{}:{}'.format(username, password, proxy, 1080) #I've also tried socks5h

            with requests.Session() as r:
                r.proxies['http': prox]
                r.proxies['https': prox]

                result = r.get('http://icanhazip.com')
                print(result.text.strip())

Если у кого-то есть какие-либо идеи, то любая помощь приветствуется. Я достиг точки, когда я изо всех сил пытаюсь придумать новые идеи, чтобы попробовать.

Это пример одной из ошибок, которые я получаю в течение всего этого процесса:

Трассировка (последний вызов был последним): файл "C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ socks.py", строка 809, в процессе согласования соединения (self, dest_addr, dest_port)Файл "C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ socks.py", строка 444, в _negotiate_SOCKS5 self, CONNECT, dest_addr) Файл "C: \ Users * \ AppData \"Local \ Programs \ Python \ Python37 \ lib \ site-packages \ socks.py ", строка 503, в _SOCKS5_request поднять SOCKS5AuthError (« Ошибка проверки подлинности SOCKS5 ») .SOCKS5AuthError: Ошибка проверки подлинности SOCKS5

Во время обработкивыше исключения произошло другое исключение:

Трассировка (последний вызов был последним): файл "C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ urllib3 \ contrib \ socks".py ", строка 88, в файле _new_conn ** extra_kw" C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ socks.py ", строка 209, в create_connection повысить файл ошибки" C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \socks.py ", строка 199, в create_connection sock.connect ((remote_host, remote_port)) Файл" C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ socks.py ", строка47, в функции возврата оболочки (* args, ** kwargs) Файл "C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ socks.py", строка 814, в коннект-рейсе GeneralProxyError(«Ошибка сокета», ошибка) socks.GeneralProxyError: Ошибка сокета: сбой аутентификации SOCKS5

Во время обработки вышеупомянутого исключения произошло другое исключение:

Traceback (последний вызов был последним): файл"C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ urllib3 \ connectionpool.py", строка 600, в urlopen chunked = chunked) Файл "C: \ Users * \ AppData \ Local\ Programs \ Python \ Python37 \ lib \ site-packages \ urllib3 \ connectionpool.py ", строка 354, в _make_reпоискconn.request (метод, URL, ** httplib_request_kw) Файл "C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ http \ client.py", строка 1244, в запросе self._send_request (метод,url, body, headers, encode_chunked) Файл "C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ http \ client.py", строка 1290, в _send_request self.endheaders (body, encode_chunked = encode_chunked)Файл "C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ http \ client.py", строка 1239, в конечных заголовках self._send_output (message_body, encode_chunked = encode_chunked) Файл "C: \ Users * \AppData \ Local \ Programs \ Python \ Python37 \ lib \ http \ client.py ", строка 1026, в файле _send_output self.send (msg)" C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \http \ client.py ", строка 966, в отправьте self.connect () Файл" C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ urllib3 \ connection.py ", строка 181, в connect conn = self._new_conn () Файл "C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ urllib3 \ contrib \ socks.py", line 110, in _new_conn "Не удалось установить новое соединение:% s"% error urllib3.exceptions.NewConnectionError:: Не удалось установить новое соединение: сбой аутентификации SOCKS5

Во время обработки вышеуказанного исключения другое исключениеПроизошло:

Traceback (последний вызов был последним): файл "C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ запросы \ adapters.py", строка 449,в send timeout = timeout Файл "C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ urllib3 \ connectionpool.py", строка 638, в urlopen _stacktrace = sys.exc_info () [2]) Файл "C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ urllib3 \ util \ retry.py", строка 399, в инкрементном увеличении MaxRetryError (_pool, url, error или ResponseError(причина)) urllib3.exceptions.MaxRetryError: SOCKSHTTPConnectionPool (host = 'icanhazip.com', port = 80): превышено максимальное количество попыток с помощью url: / (вызвано NewConnectionError (': не удалось установить новое соединение: сбой аутентификации SOCKS5')))

Во время обработки вышеупомянутого исключения произошло другое исключение:

Traceback (последний вызов был последним): файл "C: \ Users * \ Documents_Scripts \ Find Proxies \ FindProxies.py", строка 23, в результате = reports.get ('http://icanhazip.com', прокси = прокси) Файл "C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ запросы \ api.py",строка 75, в запросе возврата get ('get', url, params = params, ** kwargs) Файл "C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ запросы \ api. py ", строка 60, в запросе return session.request (method = method, url = url, ** kwargs) Файл" C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ запросы\ sessions.py ", строка 533, в запросе resp = self.send (prep, ** send_kwargs) Файл" C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ запросы \ сеансы.py ", строка 646, в send r = adapter.send (запрос, ** kwargs) Файл" C: \ Users * \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ запросы \ adapters.py", строка 516, в сенd поднять ошибку ConnectionError (e, request = request) запросыподключение: сбой аутентификации SOCKS5 '))

...