Інтеграція · початківця

Як використовувати проксі з Python-запитами, httpx і aiohttp

Три лінії конфігурації на бібліотеку, потім однаковий синтаксис імені користувача всюди: країна, місто і сеанс жити в проксі URL, так що один шлюз обслуговує кожну роботу.

3 хв читати 6 секцій Перевірено Редакція Proxy Cyber

Проксі URL#

Кожна бібліотека HTTP Python бере проксі як URL. З ключовою проксі URL несе ваші облікові дані і дані параметри налаштування в ім'я користувача; хостімейний зал і порт підбирає протокол.

Проксі URL
# Rotating: a new United States household on every new connection
http://USER-cc-us:PASS@res.proxy-cyber.com:9000

# Sticky: one Berlin household held for 30 minutes under the id "job42"
http://USER-cc-de-city-berlin-sid-job42-ttl-30m:PASS@res.proxy-cyber.com:9000

# SOCKS5 with remote DNS (socks5h), same parameters
socks5h://USER-cc-us:PASS@res.proxy-cyber.com:9001

Контакти#

Відключення перевикористання та відведення IP-адреси є різними контрольними засобами. За допомогою сеансу використають розетки, тільки присвоєна шлюзу визначає обертання та липкі дії. Використовуйте параметри сеансу, що поставляються з вашим сервісом, і перевірте вихід за декількома запитами. Закриття розетки або відправлення Підключення Підключення: закрито не гарантує іншого IP.

Контакти
import requests

PROXY = "http://USER-cc-us:PASS@res.proxy-cyber.com:9000"
proxies = {"http": PROXY, "https": PROXY}

# One request, one exit
r = requests.get("https://api.ipify.org", proxies=proxies, timeout=30)
print(r.text)

# A sticky flow: same exit for every request of this session
sticky = "http://USER-cc-de-city-berlin-sid-cart42-ttl-15m:PASS@res.proxy-cyber.com:9000"
s = requests.Session()
s.proxies = {"http": sticky, "https": sticky}
s.get("https://example.com/product/1", timeout=30)
s.post("https://example.com/cart", json={"id": 1}, timeout=30)

浜у 灞 绀#

httpx приймає один proxy= аргумент (старші версії: proxies=). Підтримує HTTP/2 до місця призначення через тунель CONNECT та працює таким же чином в коді async.

浜у 灞 绀
import httpx

PROXY = "http://USER-cc-us:PASS@res.proxy-cyber.com:9000"

with httpx.Client(proxy=PROXY, timeout=30) as client:
    print(client.get("https://api.ipify.org").text)

# async, one sticky exit per task
import asyncio

async def fetch(sid: str, url: str) -> str:
    proxy = f"http://USER-cc-us-sid-{sid}-ttl-10m:PASS@res.proxy-cyber.com:9000"
    async with httpx.AsyncClient(proxy=proxy, timeout=30) as client:
        return (await client.get(url)).text

asyncio.run(fetch("task1", "https://api.ipify.org"))

айо#

aiohttp takes проксі за запит або за сеанс і говорить про HTTP проксі рідно; SOCKS5 потребує aiohttp-socks роз'єм.

айо
import aiohttp, asyncio

PROXY = "http://USER-cc-us:PASS@res.proxy-cyber.com:9000"

async def main():
    async with aiohttp.ClientSession() as session:
        async with session.get("https://api.ipify.org", proxy=PROXY, timeout=aiohttp.ClientTimeout(total=30)) as r:
            print(await r.text())

asyncio.run(main())

Обертання, тримаючі та рети#

  • Новий TCP-з'єднання є новим транспортним сполученням, що не є доказом нового виходу. Режим повороту воріт вирішує, як передається з'єднання.
  • Використовуйте окремий ідентифікатор сеансу для кожного незалежного робочого процесу, де передбачено його шлюзу. Підтвердіть дозволені параметри тривалості та розташування у деталях з'єднання. Житловий пристрій може від'єднатися до передбачуваної тривалості; липка секція не гарантує того ж IP протягом доби. Для фіксованої адреси порівняти виділений статичний продукт.
  • Класифікуйте відповідь перед переробкою. A 403 може вказати правила доступу, що інший IP не буде вирішуватися. Для 429, поважати Retry-After і зменшити швидкість запиту; використовувати обмежений зворотний зв'язок для тимчасового підключення або збою сервера. Ретривативні операції, тільки коли ви можете запобігти дублікати дій.
  • Встановити часові маршрути до типу виходу: 15 з'єднувача і 45 s читати для житла, більш для мобільних телефонів.

Економія gigabytes#

Житловий трафік вексельований на ГБ в обох напрямках. Запитайте на стиснені відповіді (Accept-Encoding: gzip, br За замовчуванням в цих бібліотеках віддайте перевагу кінцевим пунктам JSON до HTML, і ніколи не завантажувати зображення, шрифти або медіа, якщо вони є даними. Сторінка 350 KB дешево; сторінка 4 Мб з активами не є.

Питання, які говорять#

Чому я можу отримати однаковий IP з запитами?

Повторні IP-адреси можуть призвести до з'єднання басейнів, активного липкого сеансу або наявного басейну. Порівняйте призначений режим маршрутизації та перевірте кілька запитів з таймерами. A запитів.Session керує підключеннями та файлами cookie; він не сам вибираємо проксі-вихід.

Чи потрібна інша проксі-сервера для сайтів HTTPS?

No. Те ж саме http:// проксі URL-адреси ручить HTTPS-запрямки через тунель CONNECT; TLS закінчуються до кінця між вашим кодом і сайтом.

Чи можу я використовувати той же код для мобільних проксі?

Так: замінити res.proxy-cyber.com з mob.proxy-cyber.com. Порти, облікові дані та параметри ідентичні.

Ваш рахунок

Керуйте проксі в одному акаунті

Порівняти мережі, розмістити замовлення та дотримуйтесь ваших запитів на баланс та підтримку з однієї панелі інструментів. Наші відгуки про оплату та надає деталі з'єднання після доставки.

Створити акаунт