Перейти до вмісту

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 extra.

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

Отримайте ваші облікові дані GProxy

Увійдіть у ваш дашборд GProxy та скопіюйте хост, порт, ім'я користувача та пароль proxy з відповідної сторінки продукту (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

Ротація proxy для кожного запиту

Для ротаційних residential або IPv6 proxy кожне нове з'єднання отримує свіжу 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 proxy займає 2 рядки коду та відкриває будь-який робочий процес скрапінгу, моніторингу та автоматизації, який потребує IP rotation, geo-targeting або обходу anti-bot систем. Цей посібник є повним: від налаштування та коду до граничних випадків і вирішення проблем.

HTTP проти SOCKS5 — що використовувати?

Для 95% випадків використання HTTP підходить і працює швидше. SOCKS5 виграє, коли вам потрібні: (а) UDP трафік (ігри, власні протоколи), (б) повністю не-HTTP протоколи, або (в) ви хочете, щоб DNS оброблявся через proxy (використовуйте socks5h:// для цього). GProxy підтримує обидва варіанти в кожному продукті — обирайте залежно від завдання.

Пояснення sticky sessions

Стандартний GProxy rotating residential змінює IP per request. Деякі робочі процеси потребують збереження однієї IP протягом кількох хвилин (процеси логіну, багатоетапні форми). Щоб зробити це, додайте session токен до вашого username:

USERNAME = 'your_user-session-abc123'  # any string after -session- locks the IP for ~30 min

Той самий session ID = той самий IP. Змініть ID = отримайте новий IP.

Поради щодо продуктивності

  • Використовуйте requests.Session. Це дозволяє повторно використовувати TCP з'єднання і працює в 5-10 разів швидше для кількох запитів до одного хоста.
  • Встановіть розумний timeout. За замовчуванням timeout відсутній — ваш скрипт зависне назавжди, якщо proxy працюватиме повільно. Ми рекомендуємо 15-30 секунд для residential.
  • Не завантажуйте тіло відповіді, якщо вам потрібен лише статус-код. Використовуйте stream=True і закривайте з'єднання.
  • Паралельні запити — використовуйте concurrent.futures.ThreadPoolExecutor для 5-50 одночасних з'єднань або asyncio + httpx для 100+.

Поширені помилки

  • Помилки SSL на HTTPS через HTTP proxy. Додайте verify=True (за замовчуванням) — ніколи не встановлюйте False у продакшні. Якщо ви отримуєте помилку сертифіката саме щодо proxy, переконайтеся, що використовуєте правильний hostname.
  • Пароль містить спеціальні символи. Виконайте URL-encode пароля перед тим, як додавати його в словник proxies: urllib.parse.quote(password, safe='').
  • requests не враховує змінні оточення proxy, коли передано proxies={}. Якщо ви хочете конфігурацію на основі env, використовуйте trust_env=True у сесії.

Сценарії використання

Веб-скрейпінг у великих масштабах

Поєднуйте requests + GProxy residential rotation для скрейпінгу сайтів електронної комерції без блокувань IP.

Розподіл API-запитів

Використовуйте пул GProxy IPv6 proxies для розподілу API-викликів та уникнення лімітів на одну IP.

Моніторинг SERP

Використовуйте ротацію residential proxies у різних містах для відстеження локальних результатів Google.

Цінова розвідка

Datacenter proxies для високонавантаженого сканування незахищених сторінок з цінами.

HTTP-рівень для sneaker bot

Використовуйте ISP static virgin proxies (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? +
Схема — це протокол proxy, а не цільового сайту. Використовуйте 'http://' для HTTP proxies (працює як для HTTP, так і для HTTPS цільових сайтів). Використовуйте 'socks5://' або 'socks5h://' для SOCKS5 proxies.
Чому варто використовувати socks5h:// замість socks5://? +
socks5h надсилає DNS-запити через proxy (анонімно). socks5 розпізнає DNS локально і допускає витік вашого реального DNS-сервера. Для анонімності завжди використовуйте socks5h.
Чи можу я використовувати той самий code для 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, щоб ізолювати проблему.
Чи підтримує 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.