כיצד להשתמש בפרוקסי ב-Python Requests (איגום HTTP/HTTPS ו-Session)
Updated:
ספריית requests של Python תומכת בשרתי פרוקסי מאומתים של VinaProxy באמצעות מילון proxies הממפה את הפרוטוקולים 'http' ו-'https' ל-http://user:pass@ip:port. שיוך מילון זה ל-requests.Session() קבוע עושה שימוש חוזר ב-TCP sockets תשתיתיים לגירוד רשת מהיר ובעל תקורה נמוכה.
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 IP40,000 ₫
- 5+ כתובות IP35,000 ₫
- 10+ כתובות IP25,000 ₫
- 20+ כתובות IP25,000 ₫
- 50+ כתובות IP25,000 ₫
- 100+ כתובות IP25,000 ₫
- 200+ כתובות IP25,000 ₫
- 500+ כתובות IP25,000 ₫
- 1000+ כתובות IP22,000 ₫
- 2000+ כתובות IP20,000 ₫
- 1 IP40,000 ₫
- 5+ כתובות IP35,000 ₫
- 10+ כתובות IP25,000 ₫
- 20+ כתובות IP25,000 ₫
- 50+ כתובות IP25,000 ₫
- 100+ כתובות IP25,000 ₫
- 200+ כתובות IP25,000 ₫
- 500+ כתובות IP25,000 ₫
- 1000+ כתובות IP22,000 ₫
- 2000+ כתובות IP20,000 ₫
עיצוב מילון ה-proxies ושימוש חוזר ב-Sessions
קריאה ל-requests.get() עבור כל כתובת URL יוצרת חיבור TCP ולחיצת יד של TLS חדשים לחלוטין בכל פעם. קישור הפרוקסי שלכם ל-session = requests.Session() שומר על מנהרת הפרוקסי פתוחה לאורך בקשות עוקבות.
| פרמטר ב-Requests | תחביר מומלץ | מטרה טכנית |
|---|---|---|
מפתח 'http' | 'http://user:pass@ip:port' | מנתב בקשות HTTP רגילות דרך הפרוקסי |
מפתח 'https' | 'http://user:pass@ip:port' | משתמש בסכמת http:// כדי ש-urllib3 יפתח מנהרת HTTP CONNECT עבור TLS |
טאפל timeout | timeout=(5, 15) | פסק זמן חיבור של 5 שניות ופסק זמן קריאה של 15 שניות מונעים תקיעה של תהליכי worker |
| רוטציית מאגר | itertools.cycle(proxy_list) | מבצע סבב שוויוני בין כתובות ה-IP במאגר הסטטי הייעודי שלך |
הימנעות ממלכודות נפוצות ב-urllib3 וב-ProxyError
- השתמשו תמיד ב-
http://(ולא ב-https://) כסכמת ה-URL של הפרוקסי עבור מפתחות המילון'http'ו-'https', אלא אם יציאת הפרוקסי שלכם דורשת במפורש TLS-over-TLS - בצעו קידוד URL לתווים מיוחדים בסיסמאות באמצעות
urllib.parse.quote(password, safe='') - שגיאת
407 Proxy Authentication Requiredמציינת ששם המשתמש או הסיסמה במחרוזת ה-URL אינם תואמים לפרטי ההתחברות בלוח הבקרה שלכם - עובד באופן זהה עם
httpx.Client(proxy='http://user:pass@ip:port')ועםaiohttpב-session.get(url, proxy=...)
שלב אחר שלב
- 1
המרת ip:port:user:pass לתחביר URL
השתמשו ב-ממיר פורמט הפרוקסי שלנו כדי להמיר את רשימת ה-VinaProxy שלכם למחרוזות
http://user:pass@ip:port. - 2
הגדרת מילון ה-proxies
הגדירו את
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}בסקריפט ה-Python שלכם. - 3
שיוך למופע של requests.Session()
אתחלו את
s = requests.Session()וקראו ל-s.proxies.update(proxies)עבור איגוםKeep-Aliveמתמיד. - 4
אימות כתובת ה-IP היוצאת באמצעות בקשת בדיקה
הריצו
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())כדי לאמת את כתובת ה-IP הפעילה של הפרוקסי.
שאלות נפוצות
מדוע המפתח 'https' משתמש ב-'http://user:pass@ip:port'?
הקידומת http:// מורה ל-urllib3 כיצד להתחבר לשרת הפרוקסי עצמו (באמצעות HTTP CONNECT סטנדרטי), בעוד שהתעבורה מקצה לקצה לאתר היעד ב-https:// נשארת מוצפנת לחלוטין באמצעות TLS.
כיצד לבצע רוטציה של 25 שרתי פרוקסי סטטיים בין בקשות ב-Python?
טענו את 25 כתובות ה-URL של הפרוקסי לתוך pool = itertools.cycle(PROXIES) והעבירו proxies={'http': p, 'https': p} בכל בקשה, תוך הגבלת קצב (rate limiting) מתונה לכל כתובת IP.
האם VinaProxy מודדת תעבורת רוחב פס בסקריפטים של גירוד ב-Python?
לא. כל חבילות ה-Dedicated IPv4 וה-Static ISP כוללות תעבורה חודשית ללא הגבלה.
בנו מאגר גירוד ב-Python ללא הגבלת תעבורה
שרתי פרוקסי מסוג Dedicated IPv4 ו-Static ISP מיידיים ב-7 מדינות.
רכישת פרוקסי ל-Python