Kuidas kasutada proxyt Python Requests teegis (HTTP/HTTPS ja Session-ühendused)
Updated:
Pythoni teek requests toetab autentimisega VinaProxy proxysid sõnastiku proxies kaudu, mis seob skeemid 'http' ja 'https' aadressiga http://user:pass@ip:port. Selle sõnastiku sidumine püsiva requests.Session() eksemplariga taaskasutab TCP-pesi kiireks ja madala lisakuluga veebikogumiseks.
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1 IP40 000 ₫
- 5+ IP-d35 000 ₫
- 10+ IP-d25 000 ₫
- 20+ IP-d25 000 ₫
- 50+ IP-d25 000 ₫
- 100+ IP-d25 000 ₫
- 200+ IP-d25 000 ₫
- 500+ IP-d25 000 ₫
- 1000+ IP-d22 000 ₫
- 2000+ IP-d20 000 ₫
- 1 IP40 000 ₫
- 5+ IP-d35 000 ₫
- 10+ IP-d25 000 ₫
- 20+ IP-d25 000 ₫
- 50+ IP-d25 000 ₫
- 100+ IP-d25 000 ₫
- 200+ IP-d25 000 ₫
- 500+ IP-d25 000 ₫
- 1000+ IP-d22 000 ₫
- 2000+ IP-d20 000 ₫
Sõnastiku proxies vormindamine ja Session-objektide taaskasutus
Funktsiooni requests.get() kutsumine igal URL-il loob iga kord täiesti uue TCP-ühenduse ja TLS-kätluse. Proxy sidumine käsuga session = requests.Session() hoiab proxy-tunneli järjestikuste päringute vahel avatuna.
| Requests parameeter | Soovitatav süntaks | Tehniline eesmärk |
|---|---|---|
Võti 'http' | 'http://user:pass@ip:port' | Suunab tavalised HTTP-päringud läbi proxy |
Võti 'https' | 'http://user:pass@ip:port' | Kasutab skeemi http://, et urllib3 looks TLS-i jaoks HTTP CONNECT tunneli |
timeout ennik | timeout=(5, 15) | 5 s ühenduse ja 15 s lugemise ajalõpp hoiab ära töölõimede kinnikiilumise |
| Kogumi rotatsioon | itertools.cycle(proxy_list) | Roteerib päringuid ühtlaselt üle teie spetsiaalse staatiliste IP-de kogumi |
Levinud urllib3 ja ProxyError probleemide vältimine
- Kasutage nii
'http'kui ka'https'sõnastikuvõtmete proxy URL-i skeemina alatihttp://(mittehttps://), välja arvatud juhul, kui teie proxy-port nõuab otseselt TLS-over-TLS ühendust - Kodeerige paroolis olevad erimärgid URL-kujule funktsiooniga
urllib.parse.quote(password, safe='') - Viga
407 Proxy Authentication Requiredtähendab, et teie URL-i kasutajanimi või parool ei kattunud töölaua volitustega - Töötab identselt konstruktsioonidega
httpx.Client(proxy='http://user:pass@ip:port')jaaiohttpkäsugasession.get(url, proxy=...)
Samm-sammult
- 1
Teisendage ip:port:user:pass URL-i süntaksisse
Kasutage meie Proxy Format Converter tööriista, et teisendada oma VinaProxy nimekiri
http://user:pass@ip:portstringideks. - 2
Määrake proxies sõnastik
Määrake oma Pythoni skriptis
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}. - 3
Siduge requests.Session() eksemplariga
Initsialiseerige
s = requests.Session()ja kutsuge väljas.proxies.update(proxies)püsivaKeep-Aliveühenduste kogumi jaoks. - 4
Kontrollige väljuvat IP-d testpäringuga
Aktiivse proxy IP kinnitamiseks käivitage
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json()).
Korduma kippuvad küsimused
Miks kasutab võti 'https' väärtust 'http://user:pass@ip:port'?
Eesliide http:// määrab teegile urllib3, kuidas luua ühendus proxy serveri endaga (kasutades standardset HTTP CONNECT meetodit), samal ajal kui sihtkoha https:// veebilehe lõpp-punkti liiklus jääb täielikult TLS-krüpteerituks.
Kuidas roteerida Pythonis päringute vahel 25 staatilist proxyt?
Laadige oma 25 proxy URL-i käsuga pool = itertools.cycle(PROXIES) ja edastage igale päringule proxies={'http': p, 'https': p}, rakendades mõistlikku IP-põhist päringupiirangut.
Kas VinaProxy piirab Pythoni kraapimisskriptide ribalaiust?
Ei. Kõik Dedicated IPv4 ja Static ISP paketid sisaldavad piiramatut igakuist andmemahtu.
Looge piiramatu andmemahuga Pythoni kraapimiskogum
Kohesed Dedicated IPv4 ja Static ISP proxyd 7 riigis.
Osta Pythoni proxysid