Перейти к содержимому

GProxy + Python requests — Полное руководство по интеграции 2026

TL;DR

Используйте GProxy residential, datacenter или IPv6 proxy с библиотекой Python requests в 4 строки кода. Это руководство охватывает HTTP/SOCKS5 authentication, session reuse, rotation, error handling и распространенные ошибки — с примерами для копирования и вставки.

Язык: Python Версия: 2.31+

Что вам понадобится

  • Python 3.7 или новее
  • библиотека requests установлена (pip install requests)
  • Для SOCKS5: requests[socks] (pip install requests[socks])
  • Аккаунт GProxy с активными учетными данными (residential, datacenter или IPv6)

Пошаговая настройка

1

Установка зависимостей

Установите библиотеку requests. Если вы планируете использовать SOCKS5 proxy, установите дополнение socks.

pip install requests
pip install requests[socks]  # for SOCKS5 support
2

Получите учетные данные GProxy

Войдите в панель управления GProxy и скопируйте хост, порт, имя пользователя и пароль прокси со страницы соответствующего продукта (Residential / Premium Datacenter / IPv6).

3

Использование 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>'}
4

Использование 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())
5

Повторное использование сессии для нескольких запросов

Для выполнения нескольких запросов через один и тот же 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))
6

Ротация прокси для каждого запроса

Для ротируемых резидентных или 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())
7

Обработка ошибок и повторные попытки

Сетевые ошибки и таймауты 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}')

Примеры кода

Быстрый старт — 4 строки · python
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())
Async с httpx (альтернатива) · python
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)
Кастомные заголовки + cookies · python
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 сессия для проверки доставки рекламы через гео-таргетированные аккаунты.

Pro советы

Используйте 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? +
Схема — это протокол proxy, а не целевого сайта. Используйте 'http://' для HTTP proxies (работает как для HTTP, так и для HTTPS целевых сайтов). Используйте 'socks5://' или 'socks5h://' для SOCKS5 proxies.
Почему стоит использовать socks5h:// вместо socks5://? +
socks5h отправляет DNS-запросы через proxy (анонимно). socks5 разрешает DNS локально и допускает утечку вашего реального DNS-сервера. Для анонимности всегда используйте socks5h.
Можно ли использовать один и тот же код для residential, IPv6 и datacenter proxies? +
Да. Единственное, что меняется — это URL proxy (разные хосты/порты). Residential и IPv6 используют rp.gproxy.net; datacenter использует dc.gproxy.net. Формат аутентификации идентичен.
Как выполнять ротацию residential proxies? +
Два варианта: (1) Отправлять каждый запрос через новое соединение — GProxy rotating residential дает новый IP на каждый запрос. (2) Использовать sticky sessions, добавив ID сессии к вашему имени пользователя (USER-session-XXX). Sticky позволяет сохранять один и тот же IP до 30 минут.
Я получаю ошибку 407 Proxy Authentication Required. +
Неверные учетные данные или неверный URL proxy. Проверьте в панели управления точную строку USERNAME:PASSWORD@host:port. Обратите внимание, что спецсимволы в паролях должны быть URL-encoded.
Я получаю ошибку 'Cannot connect to proxy: tunnel connection failed: 502'. +
Либо ваша подписка закончилась (проверьте баланс в панели), либо вы пытаетесь получить доступ к заблокированному ресурсу. Сначала попробуйте другой целевой URL, чтобы изолировать проблему.
Поддерживает ли Python requests протокол HTTP/2? +
Нет, requests поддерживает только HTTP/1.1. Для HTTP/2 используйте httpx (который работает с тем же форматом URL proxy) — см. альтернативный фрагмент кода выше.

Готовы попробовать?

Начните с GProxy за минуты — резидентные прокси от $0.85/GB, IPv6 от $0.03/прокси, оплата по факту использования.

Другие интеграции

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.