Интеграции · Начинаещ

Как да използваме проксита с заявки в Питон, httpx и aiohttp

Три реда на конфигурация за библиотека, след това един и същ синтаксис на потребителското име навсякъде: държава, град и сесия живеят в прокси адреса, така че един портал обслужва всяка работа.

3 мин. четене 6 секции Преглед Редакционен екип на БГНЕС Proxy Cyber

Прокси адресът#

Всяка библиотека приема прокси като адрес.С ключов прокси адресът носи вашите данни и паролата за достъп. Параметрите за насочване в потребителското име; името на хоста е шлюзът, а портът избира протокола.

Прокси адреси
# 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.

искания
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#

Отнема само 1 минута. proxy= По-стари версии: proxies=Той поддържа HTTP/2 към дестинацията чрез тунела и работи по същия начин в асинхронен код.

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

aiohttp взема проксито на заявка или на сесия и говори проксита естествено; SOCKS5 се нуждае от aiohttp-socks конектор.

aiohttp
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())

Ротация, поддържане на живот и повторни опити#

  • Новата връзка е нова транспортна връзка, а не доказателство за нов изход.Режимът на ротация, зададен от гейтуа решава как да бъде маршрутизирана тази връзка.
  • Използвайте различен идентификатор на сесия за всеки независим работен процес, когато определеният портал го поддържа. Потвърдете разрешената продължителност и параметрите на местоположението в подробностите за вашата връзка. Устройство от дома може да прекъсне връзката преди поисканата продължителност; една прилепнала сесия не е гаранция за един и същи адрес IP в продължение на дни.
  • Класифицирайте отговора преди да опитате отново. 403 може да означава правило за достъп, което друг адрес IP няма да разреши. За 429 уважавайте и намалете честотата на заявките; използвайте ограничено връщане назад при временни свързвания или откази на сървъра. Опитайте отново операциите по промяна на състоянието само когато можете да предотвратите дублиране на действия.
  • Задайте таймъри за типа на изхода: 15 свързване и 45 ч. четене за жилищни, повече за мобилни устройства.

Спестяване на гигабайти#

Жилищният трафик се таксува на ГБ в двете посоки. Поискай компресирани отговори (Accept-Encoding: gzip, br Не изтегляйте изображения, шрифтове или мултимедия, освен ако не са данни. Страница с размер 350 КБ е евтина; страница с ресурси от 4 МБ не е. Използвайте само файлове с големина 100 КБ (или по-малки).

Въпроси, които хората задават#

Защо получавам един и същ адрес IP при заявки?

Повтарящите се адреси IP могат да бъдат резултат от групиране на връзки, активна лепкава сесия или наличния Сравнете зададените маршрутизиращи режими и тествайте няколко заявки с времеви печати.А управлява връзките и бисквитките; той сам не избира изхода на проксито.

Нуждая ли се от различен прокси за сайтове?

Не. Същият прокси адрес обработва дестинации чрез тунел, а се изпълнява от край до край между кода Ви и сайта.

Мога ли да използвам същия код за мобилни проксита?

Yes: replace res.proxy-cyber.com with mob.proxy-cyber.com. Ports, credentials and parameters are identical.

Вашият акаунт »

Управлявайте всички свои проксита от един акаунт

Сравнете мрежи, направете поръчки и следете баланса си и заявките за поддръжка от едно табло Нашият екип преглежда плащанията и предоставя подробности за връзката след доставката.

Създай акаунт