Если провайдер поддерживает ротацию на шлюзе, скрипт обращается к одному адресу. Выходные IP меняет сам сервис по выбранному режиму. Именно такой подход разобран в статье.
Минимальный пример проверки:
import os
import requests
# PROXY_URL: адрес шлюза с учётными данными
proxy = os.environ["PROXY_URL"]
proxies = {"http": proxy, "https": proxy}
for _ in range(5):
r = requests.get(
"https://httpbin.org/ip",
proxies=proxies,
timeout=(5, 15),
)
r.raise_for_status()
print(r.json()["origin"])
Нюанс: ключ "https" обозначает протокол целевого сайта. Сам адрес прокси при этом может начинаться с http://. Это корректная настройка для HTTP-прокси.
Ещё важно различать два режима:
• Ротация меняет выходной IP согласно настройкам провайдера.
• Sticky session закрепляет IP на некоторое время.
При этом requests.Session() сохраняет cookies и переиспользует соединения, но самостоятельно IP не меняет. Политику ротации нужно проверять у провайдера.
https://unlimitedresidentialproxy.com/blog/how-to-rotate-proxies-python
