
1. Скачать список
curl -sL https://raw.githubusercontent.com/xyzs996/free-proxy-health-list/main/all.txt -o proxies.txt2. Загрузить и ротировать
import itertools, requests
proxies = [line.strip() for line in open("proxies.txt") if line.strip()]
pool = itertools.cycle(proxies)
def fetch(url):
for _ in range(10):
proxy = next(pool)
try:
return requests.get(
url,
proxies={"http": f"http://{proxy}", "https": f"http://{proxy}"},
timeout=8,
)
except requests.RequestException:
continue
raise RuntimeError("no working proxy")Заметки, которые сэкономят время
Бесплатные прокси по своей природе часто отказывают, поэтому главное — цикл выше: всегда пробуйте следующую запись, а не считайте один сбой фатальным. Держите таймаут коротким — мёртвый прокси съедает весь таймаут на каждом запросе — и перезагружайте список с частотой публикации, чтобы не крутить записи, истёкшие часы назад. Соблюдайте robots.txt и правила сайта: ротация нужна для распределения нагрузки, а не для обхода контроля доступа.
Связанные руководства
Границы публичного среза
Бесплатные публичные прокси общедоступны и управляются неизвестными лицами. Никогда не передавайте через них пароли, токены и персональные данные. Соблюдайте правила допустимого использования GitHub: без спама, атак, обхода контроля доступа и парсинга вопреки правилам сайта.
Бесплатные публичные прокси общедоступны и управляются неизвестными лицами. Никогда не передавайте через них пароли, токены и персональные данные. Соблюдайте правила допустимого использования GitHub: без спама, атак, обхода контроля доступа и парсинга вопреки правилам сайта.