ادغام · مبتدیان

چگونه از پروکسی ها با درخواست های پایتون، httpx و aiohttp استفاده کنیم

سه خط پیکربندی در هر کتابخانه، سپس همان نام کاربری در همه جا: کشور، شهر و جلسه در URL پروکسی زندگی می کنند، بنابراین یک دروازه به هر کار خدمت می کند.

3 دقیقه خواندن 6 بخش بازبینی‌شده تیم تحریریه Proxy Cyber

URL پروکسی#

هر کتابخانه HTTP پایتون یک پروکسی را به عنوان یک URL می گیرد، با Proxy Cyber URL اعتبار شما و URL را حمل می کند. هدف قرار دادن پارامترهای در نام کاربری؛ نام میزبان دروازه است و پورت پروتکل را انتخاب می کند.

URL های Proxy
# 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 کنترل های مختلف است.یک جلسه مشتری از سوکت ها استفاده می کند؛ تنها دروازه تعیین کننده چرخش و رفتار چسبنده-session است.استفاده از پارامترهای جلسه ارائه شده با خدمات شما و تأیید خروجی بیش از چندین درخواست. بستن سوکت یا ارسال اتصال: نزدیک تضمین 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#

httpx یک واحد را می گیرد proxy= استدلال (نسخه های قدیمی تر: proxies=این از HTTP/2 به مقصد از طریق تونل CONNECT پشتیبانی می کند و به همان شیوه در کد async کار می کند.

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 پروکسی را به هر درخواست یا هر جلسه می گیرد و به طور بومی به پروکسی های 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())

پنجره، نگه داری و retries#

  • یک اتصال TCP جدید یک اتصال حمل و نقل جدید است، نه اثبات یک خروجی جدید. مودم چرخش اختصاص داده شده دروازه تصمیم می گیرد که چگونه این اتصال هدایت می شود.
  • از یک شناسه جلسه متمایز برای هر جریان کاری مستقل استفاده کنید، جایی که دروازه اختصاص داده شده از آن پشتیبانی می کند. اعتبارسنجی مجاز مدت و پارامترهای مکان در جزئیات اتصال شما را تأیید می کند.یک دستگاه مسکونی می تواند قبل از مدت درخواست شده قطع شود؛ یک جلسه چسبنده تضمین کننده همان IP برای روزها نیست.
  • کلاس کردن پاسخ قبل از تجدید نظر. A 403 ممکن است نشان دهنده یک قانون دسترسی باشد که IP دیگر حل نخواهد شد. برای 429، احترام به retry-After و کاهش نرخ درخواست؛ استفاده از backoff برای اتصال موقت یا خرابی های سرور.
  • زمان بندی را به نوع خروجی تنظیم کنید: اتصال 15 و 45 خواندن برای مسکونی، بیشتر برای تلفن همراه.

صرفه جویی در گیگابایت#

ترافیک مسکونی در هر گیگابایت در هر دو جهت صادر می شود.پرس برای پاسخ های فشرده (درخواست برای پاسخ های فشرده)Accept-Encoding: gzip, br به طور پیش فرض در این کتابخانه ها قرار دارد، نقاط پایانی JSON را به HTML ترجیح می دهد و هرگز تصاویر، فونت ها یا رسانه ها را دانلود نمی کند مگر اینکه داده ها ارزان باشند؛ صفحه ۴ مگابایتی با دارایی ها نیست.

پرسش هایی که مردم می پرسند#

چرا من همان IP را با درخواست ها دریافت می کنم؟

IP های تکراری می توانند از اتصال استخر، یک جلسه فعال چسبنده یا استخر موجود ایجاد کنند.حالت مسیریابی اختصاص داده شده را مقایسه کرده و چندین درخواست را با timetamps تست کنند. A درخواست.Session اتصالات و کوکی ها را مدیریت می کند؛ خود خروجی پروکسی را انتخاب نمی کند.

آیا به یک پروکسی متفاوت برای سایت های HTTPS نیاز دارم؟

همان URL پروکسی http:// از طریق تونل CONNECT، HTTPS را اداره می کند؛ TLS به پایان می رسد تا بین کد شما و سایت شما پایان یابد.

آیا می توانم از همان کد برای پروکسی های تلفن همراه استفاده کنم؟

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

حساب کاربری شما

همهٔ پروکسی‌ها را در یک حساب مدیریت کنید

مقایسه شبکه ها، سفارش مکان و پیگیری تعادل و درخواست های پشتیبانی خود را از یک داشبورد.تیم ما پرداخت ها را بررسی می کند و جزئیات اتصال را پس از تحویل فراهم می کند.

ایجاد حساب