Интеграциялар · Бастауыш

Python сұрауларымен проксиді қалай пайдалануға болады, HTTP және aiohttp

Бір кітапханаға конфигурацияның үш жолы, содан кейін барлық жерде бірдей пайдаланушы синтаксисі: ел, қала және сессия прокси URL мекен-жайында тұрады, сондықтан бір шлюз әр жұмысқа қызмет етеді.

3 мин оқыңыз 6 бөлім Қайта қаралған Редакциялық топ Proxy Cyber

Прокси URL мекенжайы#

Әрбір Python HTTP кітапханасы URL мекенжайы ретінде проксиді алады. Proxy Cyber көмегімен 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)

HTTP#

HTTP бір алады proxy= аргумент (ескі нұсқалар: proxies=.) Ол HTTP/2-ді Connect туннельі арқылы тағайындалған жерге қолдайды және Async кодында бірдей жұмыс істейді.

HTTP
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 бір өтінімге немесе бір сессияға проксиді алады және HTTP проксилерін жергілікті түрде айтады; 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())

Айналу, тірі ұстау және шегіну#

  • Жаңа TCP қосылымы жаңа шығу дәлелі емес, жаңа көлік қосылымы болып табылады.Шлюздің тағайындалған айналу режимі бұл қосылымның қалай бағытталғанын шешеді.
  • Тағайындалған шлюз оны қолдайтын әрбір тәуелсіз жұмыс процесі үшін бөлек сеанс идентификаторын пайдаланыңыз. Байланыс мәліметтері бойынша рұқсат етілген уақыт пен орын параметрлерін растаңыз.Тұрғын құрылғы сұралған ұзақтығынан бұрын ажыратылуы мүмкін; жабысқақ сеанс бірнеше күн бойы бірдей IP кепілдігі емес. Бекітілген мекенжай үшін арнайы статикалық өнімді салыстырыңыз.
  • Қайталамас бұрын жауапты жіктеңіз. 403 басқа IP шешілмейтін кіру ережесін көрсетуі мүмкін. 429 үшін «Қайта орнату» түймесін құрметтеңіз және сұрау жылдамдығын азайтыңыз; уақытша қосылу немесе сервердің істен шығуы үшін шектелген кері байланысты пайдаланыңыз. Қайталанатын әрекеттерді болдырмау мүмкін болғанда ғана мемлекеттік өзгерту әрекеттерін қайталаңыз.
  • Шығу түріне уақытты орнатыңыз: 15 с қосылу және 45 с оқу тұрғын үй үшін, ұялы телефон үшін көбірек.

Гагабайттарды үнемдеу#

Екі бағытта да бір ГБ-қа тұрғын трафик есептеледі.Accept-Encoding: gzip, br әдепкі бойынша осы кітапханаларда), HTML-ге JSON соңғы нүктелерін таңдаңыз және егер олар деректер болмаса, кескіндерді, қаріптерді немесе медианы ешқашан жүктемеңіз. 350 КБ беті арзан; Активтері бар 4 МБ беті жоқ.

Адамдар қоятын сұрақтар#

Неліктен мен бірдей IP-ны сұраулармен алуды жалғастырамын?

Қайталанған IP-лер қосылымның бассейні, белсенді жабысқақ сеанс немесе қол жетімді бассейннен туындауы мүмкін.Белгіленген маршруттау режимін салыстырыңыз және бірнеше сұрауларды уақыт белгілерімен тексеріңіз.Сұрақтар.Сайлау қосылымдар мен cookie файлдарын басқарады; ол проксидің шығуын өзі таңдамайды.

HTTPS сайттары үшін басқа прокси қажет пе?

No бірдей http: // прокси URL мекен-жайлары HTTPS бағыттары бойынша CONNECT туннельі арқылы; TLS сіздің кодыңыз бен сайт арасында аяқталу үшін аяқталады.

Мобильді проксилер үшін бірдей кодты пайдалана аламын ба?

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

Сіздің шотыңыз

Барлық проксилерді бір аккаунттан басқарыңыз

Желілерді салыстырыңыз, тапсырыстарды орналастырыңыз және бір бақылау тақтасынан теңгерім мен қолдау сұрауларын орындаңыз.Біздің команда төлемдерді қарайды және жеткізілімнен кейін байланыс мәліметтерін ұсынады.

Аккаунт ашу