kitscribe
@kitscribe
Хаброжитель

Как правильно использовать socks proxy в python requests?

Код
def parse_proxy(fileObj):
    with open(fileObj) as f:
        for line in f.readlines():
            line = line.strip()
            host, port = line.split(":")
            print(f"Proxy data - {host}:{port}")
            check_proxy(host, port)


def check_proxy(host, port, socks_type=4):
    proxies = {
        "http://": f'socks{socks_type}h://{host}:{port}',
        "https://": f'socks{socks_type}h://{host}:{port}'
    }

    try:
        print("Proxy start")
        resp = requests.get("http://ifconfig.me/ip", proxies=proxies)
        print("IP is {}".format(resp.text.strip()))
    except Exception as e:
        print(e)


Я читаю прокси в формате host:port типа socks4
Прокси

110.235.245.9:10801
164.163.250.164:4145
216.198.188.26:61002
187.243.253.182:43015
202.62.39.232:4153
91.207.202.137:4145
182.253.141.81:4145
185.204.59.8:4145
190.144.224.182:44550
36.72.99.9:4145


И обращаюсь к ifconfig.me/ip чтобы узнать, был ли изменён ip, но судя по ответу ip не меняется. Никаких ошибок не выскакивает, соедининие успешно проходит, но proxy будто бы не работает

Гугл не особо помогает, установку pip3 install -U requests[socks] проводил

Что я делаю не так? Спасибо
  • Вопрос задан
  • 4447 просмотров
Решения вопроса 1
@RivalCode
Неправильно указан словарь с прокси: "://" в схеме не нужны, h после {socks_type} тоже
proxies = {
        "http": f'socks{socks_type}://{host}:{port}',
        "https": f'socks{socks_type}://{host}:{port}'
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы