Как настроить прокси: браузер, curl и Python

Вы нашли прокси в списке — что дальше? В этой инструкции показано, как подключить прокси к самым популярным инструментам: браузерам, системным настройкам, curl и Python. Во всех примерах IP:PORT — заглушка; настоящие значения копируйте из списка бесплатных прокси.

Перед началом

  • Выберите прокси, проверенный несколько секунд назад, с низкой задержкой.
  • Обратите внимание на протокол: HTTP и SOCKS5 настраиваются по-разному.
  • Держите два-три запасных — бесплатные прокси могут отключиться в любой момент.

Firefox

У Firefox собственные настройки прокси, не зависящие от системы:

  1. Откройте Настройки → Основные → Параметры сети → Настроить…
  2. Выберите Ручная настройка прокси.
  3. Для HTTP-прокси укажите IP и порт в поле HTTP-прокси и отметьте Также использовать этот прокси для HTTPS.
  4. Для SOCKS заполните Узел SOCKS, выберите SOCKS v5 (или v4) и отметьте Отправлять DNS-запросы через прокси при использовании SOCKS v5.
  5. Нажмите OK и откройте любую страницу «мой IP» для проверки.

Chrome и Edge

Браузеры на Chromium по умолчанию используют системный прокси. Чтобы задать прокси только для браузера, запустите его с флагом:

chrome --proxy-server="http://IP:PORT"
chrome --proxy-server="socks5://IP:PORT"

Расширения-переключатели прокси делают то же самое кнопкой — удобно, если меняете прокси часто.

Windows и macOS

  • Windows: Параметры → Сеть и Интернет → Прокси-сервер → Настройка прокси вручную → адрес и порт.
  • macOS: Системные настройки → Сеть → ваше подключение → Подробнее → Прокси → включите Веб-прокси (HTTP), Защищённый веб-прокси (HTTPS) или SOCKS-прокси.

Системные настройки действуют на все программы, которые их учитывают, — не забудьте потом выключить прокси.

curl

curl -x http://IP:PORT https://example.com
curl --socks5-hostname IP:PORT https://example.com

--socks5-hostname заставляет прокси разрешать домен, чтобы DNS-запросы не утекали. Добавьте --max-time 15, чтобы не зависать на мёртвом прокси.

Python requests

import requests

proxy = "http://IP:PORT"            # или "socks5h://IP:PORT"
r = requests.get(
    "https://example.com",
    proxies={"http": proxy, "https": proxy},
    timeout=15,
)
print(r.status_code)

Для SOCKS нужен дополнительный пакет: pip install "requests[socks]".

Scrapy

Прокси задаётся для каждого запроса через meta:

yield scrapy.Request(url, meta={"proxy": "http://IP:PORT"})

Ротация бесплатных прокси

Бесплатные прокси лучше использовать пулом. Загрузите свежий список через наш API, пробуйте прокси по очереди и выкидывайте неработающие:

import random, requests

pool = requests.get(
    "https://SITE/api/v1/proxies?protocol=http&anonymity=elite&format=txt"
).text.split()

for attempt in range(5):
    proxy = "http://" + random.choice(pool)
    try:
        r = requests.get("https://example.com",
                         proxies={"http": proxy, "https": proxy}, timeout=10)
        break
    except requests.RequestException:
        pool.remove(proxy.removeprefix("http://"))

Замените SITE на адрес этого сайта. Обновляйте пул раз в несколько минут — сам список обновляется каждые 30 секунд.

Если что-то не работает

  • Connection refused или таймаут — прокси отключился. Берите следующий.
  • 407 Proxy Authentication Required — прокси стал требовать пароль, пропустите его.
  • Капча на каждом шагу — перейдите на элитный прокси или другую страну.
  • Сайт видит ваш настоящий IP — прокси прозрачный или программа игнорирует настройки прокси.

Если бесплатных прокси перестало хватать, прочитайте сравнение бесплатных и платных прокси.

Эта статья на других языках: EnglishУкраїнськаEspañolPortuguês (Brasil)FrançaisDeutschTürkçeBahasa IndonesiaTiếng Việt简体中文العربيةفارسی

Читайте также