Змінити мову
Українська English Русский Deutsch Español Français Italiano Tiếng Việt Türkçe Bahasa Indonesia हिन्दी 日本語 中文
Меню
Ціни
Проксі
ТИПИ ПРОКСІ
ЗА ЛОКАЦІЯМИ77 локації
Рішення
Ресурси

Як використовувати проксі в Python requests

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

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

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

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

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

Як задати проксі в 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 через той самий проксі й переконайтеся, що це куплена вами адреса.

  5. Запускайте завдання з тайм-аутом

    Завжди передавайте timeout=: типово requests чекає безкінечно, і зависле з’єднання тоді виглядає як завислий скрипт.

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)
# 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

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

Повна документація API

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

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

Що йде не так із 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. Застаріла змінна на сервері може відправити трафік сесії не туди, куди ви збиралися, або в обхід проксі.

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

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

Інші посібники та продукт

Питання про проксі в 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, доки її не перемкнуть. SOCKS5

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

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

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

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

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

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

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

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

Статична адреса підходить завданням, які щоразу мають приходити з того самого місця: моніторингу, регіональній перевірці, тесту, який порівнює сьогоднішній результат із минулотижневим. Замовте по адресі на кожне завдання на сторінці ISP-проксі, перегляньте ціни, а якщо те саме завдання працює в браузері, посібники для Selenium і Playwright задають там ту саму адресу.

Джерела