GProxy + Python requests — Полное руководство по интеграции 2026
Используйте GProxy residential, datacenter или IPv6 proxy с библиотекой Python requests в 4 строки кода. Это руководство охватывает HTTP/SOCKS5 authentication, session reuse, rotation, error handling и распространенные ошибки — с примерами для копирования и вставки.
Что вам понадобится
- ✓Python 3.7 или новее
- ✓библиотека requests установлена (pip install requests)
- ✓Для SOCKS5: requests[socks] (pip install requests[socks])
- ✓Аккаунт GProxy с активными учетными данными (residential, datacenter или IPv6)
Пошаговая настройка
Установка зависимостей
Установите библиотеку requests. Если вы планируете использовать SOCKS5 proxy, установите дополнение socks.
pip install requests
pip install requests[socks] # for SOCKS5 support
Получите учетные данные GProxy
Войдите в панель управления GProxy и скопируйте хост, порт, имя пользователя и пароль прокси со страницы соответствующего продукта (Residential / Premium Datacenter / IPv6).
Использование HTTP proxy с аутентификацией
Самый простой способ. Передайте словарь proxies в requests. GProxy использует Basic Auth в URL.
import requests
proxies = {
'http': 'http://USERNAME:PASSWORD@dc.gproxy.net:8080',
'https': 'http://USERNAME:PASSWORD@dc.gproxy.net:8080',
}
r = requests.get('https://api.ipify.org?format=json', proxies=proxies, timeout=15)
print(r.json())
# {'ip': '<your-proxy-egress-ip>'}
Использование SOCKS5 proxy
Для SOCKS5 добавьте префикс socks5h:// к URL (буква h означает, что разрешение DNS происходит на стороне proxy — это важно для анонимности).
import requests
proxies = {
'http': 'socks5h://USERNAME:PASSWORD@proxy.gproxy.net:1080',
'https': 'socks5h://USERNAME:PASSWORD@proxy.gproxy.net:1080',
}
r = requests.get('https://api.ipify.org?format=json', proxies=proxies, timeout=15)
print(r.json())
Повторное использование сессии для нескольких запросов
Для выполнения нескольких запросов через один и тот же proxy (и сохранения keep-alive соединений) используйте Session. Это значительно быстрее, чем создание нового запроса каждый раз.
import requests
session = requests.Session()
session.proxies = {
'http': 'http://USERNAME:PASSWORD@dc.gproxy.net:8080',
'https': 'http://USERNAME:PASSWORD@dc.gproxy.net:8080',
}
for url in ['https://example.com/page1', 'https://example.com/page2']:
r = session.get(url, timeout=15)
print(r.status_code, len(r.content))
Ротация прокси для каждого запроса
Для ротируемых резидентных или IPv6 прокси каждое новое соединение получает свежий IP из пула. Используйте список и выбирайте прокси случайным образом или по кругу (round-robin).
import random
import requests
PROXIES = [
'http://USERNAME:PASSWORD@rp.gproxy.net:8001',
'http://USERNAME:PASSWORD@rp.gproxy.net:8002',
'http://USERNAME:PASSWORD@rp.gproxy.net:8003',
]
def fetch(url):
proxy_url = random.choice(PROXIES)
return requests.get(url, proxies={'http': proxy_url, 'https': proxy_url}, timeout=15)
for _ in range(5):
r = fetch('https://api.ipify.org?format=json')
print(r.json())
Обработка ошибок и повторные попытки
Сетевые ошибки и таймауты proxy случаются. Оборачивайте вызовы в try/except и повторяйте попытку с другим proxy. urllib3.Retry автоматически обрабатывает повторы на уровне HTTP.
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
retry_strategy = Retry(
total=3,
backoff_factor=1,
status_forcelist=[429, 500, 502, 503, 504],
allowed_methods=['GET', 'POST'],
)
adapter = HTTPAdapter(max_retries=retry_strategy)
session = requests.Session()
session.mount('http://', adapter)
session.mount('https://', adapter)
session.proxies = {'http': 'http://USERNAME:PASSWORD@dc.gproxy.net:8080',
'https': 'http://USERNAME:PASSWORD@dc.gproxy.net:8080'}
try:
r = session.get('https://example.com', timeout=15)
r.raise_for_status()
except requests.exceptions.ProxyError:
print('Proxy failed — rotate to next')
except requests.exceptions.Timeout:
print('Timeout — increase timeout or change proxy')
except requests.exceptions.RequestException as e:
print(f'Other error: {e}')
Примеры кода
import requests
proxies = {'http': 'http://USER:PASS@dc.gproxy.net:8080',
'https': 'http://USER:PASS@dc.gproxy.net:8080'}
print(requests.get('https://api.ipify.org?format=json', proxies=proxies).json())
import httpx
import asyncio
async def fetch_all(urls):
async with httpx.AsyncClient(proxy='http://USER:PASS@dc.gproxy.net:8080') as client:
return await asyncio.gather(*[client.get(u) for u in urls])
results = asyncio.run(fetch_all(['https://example.com/p1', 'https://example.com/p2']))
for r in results:
print(r.status_code)
import requests
session = requests.Session()
session.proxies = {'http': 'http://USER:PASS@dc.gproxy.net:8080',
'https': 'http://USER:PASS@dc.gproxy.net:8080'}
session.headers.update({
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Accept-Language': 'en-US,en;q=0.9',
})
resp = session.get('https://example.com/login')
# Cookies persist across requests automatically
resp = session.post('https://example.com/login', data={'user': 'me', 'pass': 'x'})
Почему стоит использовать Python requests с GProxy?
Python requests — это самая устанавливаемая библиотека Python HTTP: более 30 миллиардов скачиваний. Добавление прокси GProxy занимает всего 2 строки кода и открывает любые возможности для парсинга, мониторинга и автоматизации, требующие IP rotation, geo-targeting или обхода anti-bot систем. Это полное руководство: от настройки и кода до обработки исключений и поиска неисправностей.
HTTP против SOCKS5 — что использовать?
В 95% случаев HTTP достаточно, и он работает быстрее. SOCKS5 выигрывает, когда вам нужны: (а) UDP трафик (игры, кастомные протоколы), (б) протоколы, отличные от HTTP, или (в) если вы хотите, чтобы DNS обрабатывался через proxy (используйте socks5h:// для этого). GProxy поддерживает оба варианта в каждом продукте — выбирайте в зависимости от задачи.
Что такое Sticky sessions
По умолчанию ротируемые резидентные прокси GProxy меняют IP per request. Для некоторых рабочих процессов требуется сохранять один и тот же IP в течение нескольких минут (авторизация, многошаговые формы). Чтобы сделать это, добавьте session токен к вашему username:
USERNAME = 'your_user-session-abc123' # любая строка после -session- закрепляет IP примерно на 30 минут
Один и тот же session ID = тот же IP. Смена ID = получение нового IP.
Советы по производительности
- Используйте
requests.Session. Это позволяет повторно использовать TCP соединения и работает в 5-10 раз быстрее при выполнении нескольких запросов к одному и тому же хосту. - Установите разумный timeout. По умолчанию timeout отсутствует — ваш скрипт может зависнуть навсегда, если proxy работает медленно. Мы рекомендуем 15-30 секунд для резидентных прокси.
- Не загружайте тело ответа, если вам нужен только статус-код. Используйте
stream=Trueи закрывайте соединение. - Параллельные запросы — используйте
concurrent.futures.ThreadPoolExecutorдля 5-50 одновременных соединений илиasyncio + httpxдля 100+.
Распространенные ошибки
- Ошибки SSL при работе с HTTPS через HTTP proxy. Используйте
verify=True(по умолчанию) — никогда не устанавливайте False в продакшене. Если вы получаете ошибку сертификата именно от proxy, убедитесь, что используете правильное имя хоста. - Пароль содержит специальные символы. Выполните URL-encode пароля перед добавлением его в словарь proxies:
urllib.parse.quote(password, safe=''). - requests не учитывает переменные окружения proxy, если передан параметр proxies={}. Если вам нужна конфигурация через переменные окружения, используйте
trust_env=Trueв сессии.
Сценарии применения
Web scraping в масштабе
Комбинируйте requests + GProxy residential rotation для скрапинга e-commerce сайтов без IP банов.
Распределение API запросов
Используйте пул GProxy IPv6 прокси для распределения API вызовов и обхода rate limits на каждый IP.
SERP мониторинг
Ротируйте residential прокси в разных городах для отслеживания локального ранжирования в Google.
Ценовая разведка
Datacenter прокси для высокообъемного краулинга незащищенных страниц с ценами.
HTTP слой для Sneaker bot
Используйте ISP static virgin прокси (GProxy $6.50/IP virgin tier) для первых попыток при дропах кроссовок.
Проверка здоровья социальных сетей
Одна sticky residential сессия для проверки доставки рекламы через гео-таргетированные аккаунты.
Используйте Session, а не requests.get() в цикле. Одна сессия поддерживает соединения активными — это экономит 100-500ms на каждый запрос.
Смешивайте sticky и rotating сессии. Используйте sticky для многошаговых процессов (login → action → logout), а rotating для извлечения данных без сохранения состояния.
Логируйте выходной IP при ошибках. Добавьте print(requests.get('https://api.ipify.org', proxies=proxies).text) в начале каждого процесса скрапинга, чтобы подтвердить, что ротация работает.
FAQ
Использовать http:// или https:// в словаре proxies? +
Почему стоит использовать socks5h:// вместо socks5://? +
Можно ли использовать один и тот же код для residential, IPv6 и datacenter proxies? +
Как выполнять ротацию residential proxies? +
Я получаю ошибку 407 Proxy Authentication Required. +
Я получаю ошибку 'Cannot connect to proxy: tunnel connection failed: 502'. +
Поддерживает ли Python requests протокол HTTP/2? +
Готовы попробовать?
Начните с GProxy за минуты — резидентные прокси от $0.85/GB, IPv6 от $0.03/прокси, оплата по факту использования.
