# Проксі в Python requests: статичний ISP-проксі | ProxyJam

Як задати проксі в Python requests: для запиту, для сесії і через SOCKS5 з віддаленим DNS, з перевіреним кодом для однієї статичної ISP-адреси.

- Canonical: https://proxyjam.com/uk/integrations/python-requests/
- Updated: 2026-10-23
- Language: uk

Спрямуйте requests через одну статичну ISP-адресу: один IP у мережі названого інтернет-провайдера, закріплений за вами на оплачений період. Код нижче перед публікацією перевірили на проксі з автентифікацією.


Передайте словник proxies з ключами http і https, кожному з яких задано http://USERNAME:PASSWORD@HOST:PORT, і requests надішле виклик через проксі; запити до HTTPS-адрес ідуть через нього тунелем. Для SOCKS5 установіть requests[socks], перемкніть проксі на SOCKS5 у замовленні й використовуйте схему socks5h, щоб імена хостів розв'язував проксі, а не ваш комп'ютер.


## Як задати проксі в Python requests

1. **Скопіюйте чотири значення із замовлення** Хост, порт, логін і пароль: з розділу «Мої проксі» в панелі керування або із замовлення в API. Кожна адреса має свої чотири значення; спільного шлюзу немає.
2. **Зберіть одну URL-адресу проксі** `http://USERNAME:PASSWORD@HOST:PORT`. Якщо в паролі є `/`, `?`, `#` або `%`, спершу закодуйте його для URL за допомогою `urllib.parse.quote(password, safe="")`.
3. **Задайте її для обох схем** Передайте ту саму URL-адресу ключу `http` і ключу `https`. Якщо задано лише `http`, кожен HTTPS-запит іде повз проксі й виходить з вашої власної адреси.
4. **Один раз перевірте вихідну адресу** Запросіть сторінку, яка показує IP відправника, або відкрийте [What Is My IP](/uk/what-is-my-ip/) через той самий проксі й переконайтеся, що це куплена вами адреса.
5. **Запускайте завдання з тайм-аутом** Завжди передавайте `timeout=`: типово requests чекає безкінечно, і зависле з'єднання тоді виглядає як завислий скрипт.

## Перевірений код для requests

Кожен приклад підключається через HTTP-проксі з логіном і паролем, крім прикладу для SOCKS5: для нього проксі спершу треба перемкнути на SOCKS5, після чого в замовленні з'являться новий порт і нові облікові дані. Замініть чотири слова великими літерами значеннями зі свого замовлення.

### Для запиту

Проксі для одного виклику.

```
import requests

# The four values come with your order (dashboard or API)
proxy = "http://USERNAME:PASSWORD@HOST:PORT"

response = requests.get(
    "https://example.com/",
    proxies={"http": proxy, "https": proxy},
    timeout=30,
)
response.raise_for_status()
print(response.status_code)
```

### Сесія

Проксі задається один раз для всіх викликів сесії.

```
import requests

proxy = "http://USERNAME:PASSWORD@HOST:PORT"

with requests.Session() as session:
    # HTTP_PROXY / HTTPS_PROXY in the environment would override
    # session.proxies; this makes the session use only its own setting.
    session.trust_env = False
    session.proxies.update({"http": proxy, "https": proxy})
    response = session.get("https://example.com/", timeout=30)
    response.raise_for_status()
    print(response.status_code)
```

### SOCKS5

SOCKS5 з розв'язуванням імен хостів на боці проксі.

```
# pip install "requests[socks]"
import requests

# Switch the proxy to SOCKS5 first; use the values the order then shows.
# socks5h: the proxy resolves the hostname, not your machine.
proxy = "socks5h://USERNAME:PASSWORD@HOST:PORT"

response = requests.get(
    "https://example.com/",
    proxies={"http": proxy, "https": proxy},
    timeout=30,
)
response.raise_for_status()
print(response.status_code)
```


## Де можна задати проксі в requests

|  | Охоплення | Облікові дані | Коли використовувати |
|---|---|---|---|
| proxies= у виклику | Лише цей запит | В URL | Скрипт із кількома викликами |
| Session.proxies | Усі запити сесії | В URL | Усе, що довше, з trust_env, рівним False |
| HTTP_PROXY і HTTPS_PROXY | Усі виклики requests у процесі | В URL | Код, який не можна змінити; у NO_PROXY перелічуються хости, які треба обійти |
| URL socks5h:// | Те охоплення, на якому його задано | В URL | Коли імена хостів має розв'язувати проксі |

За документацією requests, перевірено прикладами коду з цієї сторінки на локальному проксі з автентифікацією. Якщо задано кілька варіантів, аргумент proxies у виклику переважає оточення, а оточення переважає Session.proxies, якщо тільки сесія не задає trust_env рівним False, як у прикладі із сесією.


## До чого підключається requests

- **Протоколи:** HTTP, яким іде й HTTPS, або SOCKS5, перемикається в замовленні
- **Автентифікація:** Логін і пароль або білий список IP, який задається через API
- **Адреса:** Один статичний IP на весь період, у мережі названого інтернет-провайдера
- **Ротація:** Немає: та сама адреса на кожен запит

## Що йде не так із requests і проксі

### Задано лише ключ http

Ключ позначає схему цільової адреси, а не проксі. Словник лише з http спрямовує через проксі звичайний HTTP, а кожен HTTPS-виклик відпускає напряму, і жодної помилки про це не буде.

### socks5 там, де мав бути socks5h

Із socks5 ім'я хоста розв'язує ваш комп'ютер і передає проксі IP. Із socks5h його розв'язує проксі, тож DNS-запит і відповідь на нього надходять із мережі проксі, а це важливо для сайтів, які відповідають залежно від розташування.

### Пароль, який ламає URL

Скісна риска, знак питання або решітка в паролі обривають URL, і requests видає помилку, не дійшовши до проксі; знак відсотка декодується як екранування. Закодуйте пароль для URL або використовуйте автентифікацію за білим списком IP і приберіть облікові дані.

### Забута змінна оточення

requests читає HTTP_PROXY, HTTPS_PROXY і NO_PROXY, якщо в сесії не задати trust_env рівним False, і ці змінні переважають Session.proxies. Застаріла змінна на сервері може відправити трафік сесії не туди, куди ви збиралися, або в обхід проксі.


## Питання про проксі в Python requests

### Як використовувати проксі з автентифікацією в Python requests?

Впишіть логін і пароль в URL проксі, http://USERNAME:PASSWORD@HOST:PORT, і передайте його і для ключа http, і для ключа https. requests надсилає облікові дані проксі, а той відповідає 407, якщо вони неправильні. Пароль із зарезервованими символами закодуйте або використовуйте замість нього білий список IP.

### Як використовувати SOCKS5-проксі в requests?

Установіть доповнення командою pip install requests[socks], перемкніть сам проксі на SOCKS5 у замовленні й укажіть порт і облікові дані, які після цього покаже замовлення, в URL socks5h://. Самої зміни схеми недостатньо: адреса, налаштована на HTTP, не відповідає через SOCKS5, доки її не перемкнуть.

### Чи можна замість пароля використовувати автентифікацію за білим списком IP?

Так. Додайте публічну IPv4-адресу, з якої працює ваш скрипт, до білого списку проксі одним викликом API, PUT /orders/ORDER_ID/whitelist, або через MCP-сервер; у панелі керування для цього поки немає налаштування. Після цього проксі приймає підключення з цієї адреси без облікових даних, через HTTP і через SOCKS5, а URL стає http://HOST:PORT. Поки білий список задано, проксі пропускає лише адреси з нього, а логін і пароль для цього замовлення перестають працювати. Якщо надіслати порожній список, білий список вимикається і вхід за паролем знову працює.

### Чи змінюється адреса між запитами?

Ні. Статичний ISP-проксі дає одну адресу на оплачений період, і кожен запит через нього виходить із цієї адреси. Якщо завданню потрібна нова адреса на кожен запит, це ротаційний пул, а його ми поки не продаємо.

### Як перевірити, який IP бачить сайт?

Запросіть через той самий проксі сторінку, яка повертає адресу відправника, або відкрийте What Is My IP у браузері, налаштованому на цей проксі. Якщо там ваша власна адреса, найімовірніше, не задано ключ https.

### Для чого можна використовувати проксі?

Тестування власних сайтів за регіонами, перевірка якості, верифікація реклами, дослідження цін і ринку та захист бренду не потребують перевірки за нашою політикою прийнятного використання. Проксі не обходить CAPTCHA, виявлення ботів, обмеження частоти запитів і блокування акаунтів, а політика забороняє використовувати його для таких спроб.


Статична адреса підходить завданням, які щоразу мають приходити з того самого місця: моніторингу, регіональній перевірці, тесту, який порівнює сьогоднішній результат із минулотижневим. Замовте по адресі на кожне завдання на сторінці [ISP-проксі](/uk/isp-proxies/), перегляньте [ціни](/uk/pricing/), а якщо те саме завдання працює в браузері, посібники для [Selenium](/uk/integrations/selenium/) і [Playwright](/uk/integrations/playwright/) задають там ту саму адресу.



## Джерела

- [Requests documentation, Proxies](https://requests.readthedocs.io/en/latest/user/advanced/#proxies): аргумент proxies, змінні оточення та підтримка SOCKS
- [RFC 1928, SOCKS Protocol Version 5](https://www.rfc-editor.org/rfc/rfc1928): як клієнт запитує в SOCKS5-проксі адресу призначення за ім'ям або за IP
- [RFC 3986, URI Generic Syntax](https://www.rfc-editor.org/rfc/rfc3986#section-3.2.1): частина URL із даними користувача (userinfo) і символи, які в ній треба кодувати




Python requests бере проксі зі словника, який зіставляє схему цільової URL-адреси з URL-адресою проксі. У цьому посібнику такий словник задається для однієї статичної ISP-адреси й показано три місця, де він може бути: у виклику, у сесії або в оточенні.

## Проксі в Python requests з логіном і паролем

Більшість проксі, зокрема наші, вимагають логін і пароль. requests бере їх з URL проксі й надсилає проксі під час кожного підключення. Для HTTPS-адреси проксі відкриває тунель і ніколи не бачить вмісту запиту. На вкладках із кодом показано варіант для одного запиту й варіант із сесією.

