Как правильно использовать прокси в Python3? - PullRequest
0 голосов
/ 16 июня 2019

При попытке найти прокси с помощью кода:

proxy_list = open(dir_path + "/proxies.txt", 'r+').readlines()
proxy_list = [item.replace("""\n""", "") for item in proxy_list]
proxy_pool = cycle(proxy_list)

url = "https://httpbin.org/ip"
for i in range(len(proxy_list)-1):
    #Get a proxy from the pool
    proxy = next(proxy_pool)
    try:
        response = requests.get(url,proxies={"http": proxy, "https": proxy})
        working_proxies.append(proxy)
        break
    except:
        pass;

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

Код:

l = requests.Session()
l.proxies = proxies

print("Checking Connection")
r = l.get("https://httpbin.org/ip")
print("your connecting through: ", r.text)

И ошибка из кода выше:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/urllib3/connectionpool.py", line 594, in urlopen
    self._prepare_proxy(conn)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/urllib3/connectionpool.py", line 805, in _prepare_proxy
    conn.connect()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/urllib3/connection.py", line 308, in connect
    self._tunnel()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 906, in _tunnel
    (version, code, message) = response._read_status()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/http/client.py", line 265, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response

Так что мне было интересно, есть ли лучший способ для работы с прокси в python и убедиться, что они работают?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...