Главная / Сценарии / Ротирующийся прокси
Бесплатный пул ротирующихся прокси
Ротирующийся прокси отправляет каждый запрос с другого IP. Платный сервис не нужен — соберите свой пул из бесплатного списка, проверяемого каждый час.
Шаблон ротации
Три части: загрузить проверенный пул, ротировать к следующему прокси на каждом вызове и обновлять пул по таймеру, чтобы заменять мёртвые прокси.
import itertools, time, requests
LIST = "https://raw.githubusercontent.com/xyzs996/free-proxy-health-list/main/proxies/all/data.json"
def load_pool():
data = requests.get(LIST, timeout=15).json()
def to_url(p):
proto, hp = p["protocol"], p["proxy"]
if proto.startswith("socks5"): return f"socks5h://{hp}"
if proto.startswith("socks4"): return f"socks4://{hp}"
return f"http://{hp}"
return [to_url(p) for p in data]
pool = load_pool()
cycle = itertools.cycle(pool)
refreshed = time.time()
def get(url, tries=10):
global pool, cycle, refreshed
if time.time() - refreshed > 1800:
pool = load_pool(); cycle = itertools.cycle(pool); refreshed = time.time()
for _ in range(tries):
px = next(cycle)
try:
r = requests.get(url, proxies={"http": px, "https": px}, timeout=8)
if r.ok: return r
except requests.RequestException:
continue
raise RuntimeError("no working proxy this round")
print(get("https://httpbin.org/ip").json())
Как оздоровить пул
Начните с подмножеств fast или top-1000 для лучшего hit-rate, отбрасывайте прокси, упавшие дважды подряд, и обновляйте чаще при падении успеха. Список перепроверяется каждый час.
Частые вопросы
Можно ли собрать бесплатный ротирующийся прокси?
Да — ротируйте проверенный список и повторяйте следующий при сбое. Ротация + повтор и делают бесплатные прокси пригодными.
Как часто обновлять пул?
Каждые 15-60 минут. Исходный список проверяется каждый час.
Когда стоит платить?
Если нужен стабильный ротирующийся URL с SLA, см. Pro API.