प्रॉक्सी यूआरएल#
प्रत्येक पायथन पुस्तकालय HTTP के रूप में एक प्रॉक्सी लेता है। 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अनुरोध#
कनेक्शन का पुन: उपयोग और आईपी असाइनमेंट अलग-अलग नियंत्रण हैं। एक ग्राहक सत्र सॉकेट का पुन: उपयोग करता है; केवल निर्दिष्ट गेटवे घूर्णन और चिपचिपा सत्र व्यवहार को निर्धारित करता है। अपनी सेवा के साथ आपूर्ति किए गए सत्र मापदंडों का उपयोग करें, और कई अनुरोधों पर निकास को सत्यापित करें। एक सॉकेट को बंद करना या कनेक्शन भेजना: बंद एक अलग आईपी की गारंटी नहीं देता है।
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 takes a single proxy= तर्क (पुराने संस्करण: proxies=यह HTTP / 2 को गंतव्य के लिए कनेक्ट सुरंग के माध्यम से समर्थन करता है और 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#
aiohttp प्रति अनुरोध या प्रति सत्र प्रॉक्सी लेता है और स्थानीय रूप से HTTP प्रॉक्सी बोलता है; ऑस्कर5 की जरूरत है 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())रोटेशन, रखरखाव और retries#
- एक नया टीसीपी कनेक्शन एक नया परिवहन कनेक्शन है, जो एक नए निकास का प्रमाण नहीं है। गेटवे का नियत रोटेशन मोड यह तय करता है कि कनेक्शन किस तरह से किया जाता है।
- प्रत्येक स्वतंत्र वर्कफ़्लो के लिए एक अलग सत्र पहचानकर्ता का उपयोग करें, जहां निर्दिष्ट गेटवे इसका समर्थन करता है। अपने कनेक्शन विवरण में अनुमति अवधि और स्थान मापदंडों की पुष्टि करें। अनुरोध अवधि से पहले एक आवासीय उपकरण डिस्कनेक्ट कर सकता है; एक चिपचिपा सत्र दिनों के लिए उसी आईपी की गारंटी नहीं है। एक निश्चित पते के लिए, एक समर्पित स्थिर उत्पाद की तुलना करें।
- पुन: प्रयास करने से पहले प्रतिक्रिया को वर्गीकृत करें। एक 403 एक एक्सेस नियम इंगित कर सकता है कि दूसरा आईपी हल नहीं करेगा। 429 के लिए, रिट्री-अप का सम्मान करें और अनुरोध दर को कम करें; अस्थायी कनेक्शन या सर्वर विफलताओं के लिए बाध्य बैकऑफ का उपयोग करें। केवल जब आप डुप्लिकेट कार्यों को रोक सकते हैं तो रीट्री स्टेट-बदलते ऑपरेशन।
- निकास प्रकार के लिए टाइमआउट सेट करें: 15 सेकंड कनेक्ट और 45 सेकंड आवासीय के लिए, मोबाइल के लिए अधिक पढ़ने के लिए।
गिगाबाइट बचत#
आवासीय यातायात दोनों दिशाओं में प्रति जीबी बिल किया जाता है। संपीड़ित प्रतिक्रियाओं के लिए पूछो ()Accept-Encoding: gzip, br इन पुस्तकालयों में डिफ़ॉल्ट रूप से है, JSON HTML को इंगित करता है और कभी भी छवियों, फोंट या मीडिया को डाउनलोड नहीं करता है जब तक कि वे डेटा नहीं हैं। 350 KB पृष्ठ सस्ता है; परिसंपत्तियों के साथ 4 MB पृष्ठ नहीं है।
सवाल पूछो#
मैं अनुरोध के साथ उसी आईपी को क्यों प्राप्त करूं?
दोहराया आईपी कनेक्शन पूलिंग, एक सक्रिय चिपचिपा सत्र या उपलब्ध पूल से उत्पन्न हो सकता है। निर्धारित रूटिंग मोड की तुलना करें और टाइमस्टैम्प के साथ कई अनुरोधों का परीक्षण करें। एक अनुरोध। सत्र कनेक्शन और कुकीज़ का प्रबंधन करता है; यह स्वयं प्रॉक्सी निकास का चयन नहीं करता है।
क्या मुझे HTTPS साइटों के लिए एक अलग प्रॉक्सी की आवश्यकता है?
नहीं, वही http:// प्रॉक्सी URL एक कनेक्ट सुरंग के माध्यम से HTTPS गंतव्यों को संभालता है; TLS आपके कोड और साइट के बीच समाप्त होने के लिए समाप्त होता है।
क्या मैं मोबाइल प्रॉक्सी के लिए एक ही कोड का उपयोग कर सकता हूं?
हाँ: mob.proxy-cyber.com के साथ res.proxy-cyber.com की जगह। पोर्ट्स, क्रेडेंशियल्स और पैरामीटर समान हैं।