@R4ndolphC4rter

Python requests как правильно работать с proxy?

Я пишу программу на python, которая постоянно отправляет запросы на некий сайт.
r = s.post(URL, data=data, headers=headers, proxies=proxies)

переменная proxies - словарь
proxies = {
    'http': 'xxx.xx.xxx.xx:xxxx'
}

Если бы я не менял значение в словаре и отправлял бы запросы с одного ip, то сервер заблокировал бы меня на время, и я не смог бы получать корректную информацию с моего ip.

Поэтому после каждого запроса я меняю значение в словаре на другое (список этих значений подготовлен заранее ).

Проблема:
Не смотря на то, что я меняю значение proxies, сервер всё равно меня блокирует, а запросы мои не проходят.

Я не понимаю, из-за чего возникает данная проблема.

Так же я отправлял запросы на данную страницу icanhazip.com (она возвращает мой ip). Практически всегда отображаемый результат этой страницы соответствует значению proxy.

Вопрос:
Как можно исправить эту проблему? (использую requests). Или можно ли посоветовать какую-либо альтернативу?
  • Вопрос задан
  • 30125 просмотров
Решения вопроса 1
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
Во-первых:
proxies = {
    'http': 'xxx.xx.xxx.xx:xxxx',
    'https': 'xxx.xx.xxx.xx:xxxx'
}

Во-вторых: вы заменяете User-Agent? По стандарту он 'python-requests' - многие сайты блокируют.
В-третьих: если берете прокси из общего доступа, то он уже может быть заблокированным (на самом деле это довольно часто). Берите сразу большое кол-во прокси и пробуйте перебирать их примерно так:
proxies = []
for proxy in proxies:
    response = requests.get(proxies=proxy)
    if response.status_code == requests.codes['ok']:
        break

response.text
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы