Ինչպես օգտագործել պրոքսի Python Requests-ում (HTTP/HTTPS և Session pooling)
Updated:
Python-ի requests գրադարանն ընդունում է աուտենտիֆիկացված VinaProxy պրոքսիներ proxies բառարանի միջոցով, որը համադրում է ինչպես 'http', այնպես էլ 'https' սխեմաները http://user:pass@ip:port-ի հետ: Այդ բառարանի կցումը մշտական requests.Session()-ին վերաօգտագործում է բազային TCP սոկետները արագ և նվազագույն ծախսերով վեբ-սքրեյփինգի համար:
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 բառարանի ձևաչափումը և Session-ների վերաօգտագործումը
Յուրաքանչյուր URL-ի վրա requests.get() կանչելը ամեն անգամ ստեղծում է բոլորովին նոր TCP միացում և TLS ձեռքսեղմում: Ձեր պրոքսին session = requests.Session()-ին կապելը պահպանում է պրոքսի թունելը բաց հաջորդական հարցումների ընթացքում:
| Requests-ի պարամետր | Առաջարկվող շարահյուսություն | Տեխնիկական նպատակ |
|---|---|---|
'http' key | 'http://user:pass@ip:port' | Ուղղորդում է պարզ HTTP հարցումները պրոքսիի միջով |
'https' key | 'http://user:pass@ip:port' | Օգտագործում է http:// սխեման, որպեսզի urllib3-ը թողարկի HTTP CONNECT թունել TLS-ի համար |
timeout tuple | timeout=(5, 15) | 5 վրկ միացման timeout-ը և 15 վրկ ընթերցման timeout-ը կանխում են աշխատանքային թելերի (worker threads) կախվելը |
| Փուլի ռոտացիա | 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 շարահյուսության
Օգտագործեք մեր Proxy Format Converter-ը՝ ձեր 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), մինչդեռ ձեր ծայրից ծայր traffic-ը դեպի թիրախային https:// կայք մնում է ամբողջությամբ TLS-գաղտնագրված:
Ինչպե՞ս Python-ում ռոտացնել 25 ստատիկ պրոքսիներ հարցումների միջև:
Բեռնեք ձեր 25 պրոքսի URL-ները pool = itertools.cycle(PROXIES)-ի մեջ և փոխանցեք proxies={'http': p, 'https': p} յուրաքանչյուր հարցման համար՝ ըստ IP-ի հարցումների հաճախականության չափավոր սահմանափակմամբ:
Արդյո՞ք VinaProxy-ը սահմանափակում է թողունակությունը Python-ի սքրեյփինգի սկրիպտների համար:
Ոչ: Բոլոր Dedicated IPv4 և Static ISP սակագնային պլանները ներառում են անսահմանափակ ամսական տրաֆիկ:
Ստեղծեք Python սքրեյփինգի անսահմանափակ փուլ
Ակնթարթային Dedicated IPv4 և Static ISP պրոքսիներ 7 երկրներում:
Գնել Python պրոքսիներ