- Хост
- gw.prokso.com
- Порт
- 823 HTTP · 824 SOCKS5 — новый IP на каждый запрос · 10000–20000 фиксированный IP (sticky-сессия), HTTP(S) и SOCKS5
- Логин и пароль
- в кабинете, на странице плана
Готовые строки в нужном формате генерирует кабинет: выберите страну, тип IP и протокол.
- Хост — gw.prokso.com, порты 823 (HTTP), 824 (SOCKS5), 10000–20000 (фиксированный IP, HTTP или SOCKS5)
- Логин и пароль — в кабинете на странице плана
- Проверяйте IP в ответе самого запроса через прокси: страница «Мой IP» в браузере ваш скрипт не проверяет
Пошаговая инструкция, как подключить прокси Prokso в httpx. Займёт несколько минут.
Шаг 1. Возьмите данные прокси в кабинете
Откройте план и скопируйте хост gw.prokso.com, порт, логин и пароль. Порт 823 — HTTP, 824 — SOCKS5 (оба дают новый IP на каждый запрос); порты 10000–20000 — фиксированный IP до 120 минут, работают и как HTTP, и как SOCKS5 (каждый порт — отдельный адрес). Страну задают в логине: логин__cr.ua.
Шаг 2. Установите библиотеку
pip install httpx. Для SOCKS5 — pip install "httpx[socks]". Примеры ниже написаны для httpx 0.28: в ней прокси передают параметром proxy, старый параметр proxies убран.
import httpx
PROXY = "http://ЛОГИН:ПАРОЛЬ@gw.prokso.com:823"
with httpx.Client(proxy=PROXY, timeout=30) as client:
r = client.get("https://api.ipify.org?format=json")
print(r.json())Шаг 3. Передайте прокси клиенту
Создайте httpx.Client с параметром proxy: логин и пароль впишите прямо в адрес. Все запросы этого клиента пойдут через прокси, а соединения с прокси будут переиспользоваться — это быстрее, чем отдельный httpx.get на каждый запрос.
import asyncio
import httpx
async def main():
async with httpx.AsyncClient(proxy="socks5://ЛОГИН:ПАРОЛЬ@gw.prokso.com:824", timeout=30) as client:
urls = ["https://api.ipify.org?format=json"] * 3
for r in await asyncio.gather(*(client.get(u) for u in urls)):
print(r.json())
asyncio.run(main())Шаг 4. Асинхронные запросы и SOCKS5
httpx.AsyncClient принимает тот же параметр. Для SOCKS5 смените схему на socks5:// и порт на 824: httpx передаёт прокси имя сайта, поэтому DNS-запросы не идут мимо прокси.
Шаг 5. Выберите порт под задачу
Для параллельного сбора данных оставляйте 823 или 824 — каждый запрос получит новый адрес. Чтобы серия запросов шла с одного IP, возьмите фиксированный порт 10000–20000: он работает и с http://, и с socks5://.
Шаг 6. Если соединение не устанавливается
Сверьте хост gw.prokso.com, порт и схему: HTTP на 823, SOCKS5 на 824, на портах 10000–20000 — оба. Ошибка 407 означает неверный логин или пароль либо закончившийся трафик: проверьте остаток на странице плана в кабинете. Таймаут чаще всего значит, что порт введён с ошибкой или клиент ждёт другой протокол. Если работаете с доступом по IP, убедитесь, что в белый список добавлен внешний адрес именно той машины, где запускается код.
Шаг 7. Проверьте вывод
Запустите пример: скрипт обращается к https://api.ipify.org и печатает IP, который видит сайт. Это должен быть адрес прокси, а не ваш. Ошибка 407 означает неверный логин или пароль либо закончившийся трафик на плане. Страница «Мой IP» в браузере здесь не поможет: браузер идёт напрямую.
Вопросы и ответы
Берёт ли httpx прокси из переменных окружения?
Да, по умолчанию httpx читает <code>HTTP_PROXY</code> и <code>HTTPS_PROXY</code>. Если прокси передан параметром <code>proxy</code>, действует он. Чтобы переменные не влияли на скрипт, создайте клиент с <code>trust_env=False</code>.
Что значит ошибка ProxyError: 407?
Прокси не принял логин или пароль. Скопируйте строку из генератора в кабинете ещё раз и проверьте, остался ли трафик на плане.
Какой порт выбрать?
Порт 823 (HTTP) или 824 (SOCKS5) даёт новый IP на каждый запрос — удобно для сбора данных. Порт 10000–20000 держит один IP до 120 минут — для сессий со входом в аккаунт. На план приходится до 1000 одновременных соединений.
Как выбрать страну?
Страна записана в логине прокси. Сгенерируйте в кабинете строку для нужной страны и подставьте в код логин из неё — остальной адрес не меняется.
Что делать, если часть запросов падает?
При сборе данных отдельные адреса бывают медленными или недоступными. Добавьте в код несколько повторных попыток с паузой: на порту 823 или 824 каждая попытка пойдёт уже с нового адреса.