Kaip nustatyti autentifikuotą proxy Selenium WebDriver
Updated:
Standartinės ChromeDriver --proxy-server=http://ip:port vėliavėlės nepaiso eilutėje nurodytų user:pass prisijungimo duomenų ir parodo blokuojantį prisijungimo langą. Norėdami sklandžiai naudoti VinaProxy autentifikuotus HTTP(S) proxy Selenium aplinkoje, perduokite prisijungimo duomenis per selenium-wire arba įkelkite nedidelį foninį Chrome onAuthRequired plėtinį.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 1 IP40 000 VND
- Nuo 5 IP35 000 VND
- Nuo 10 IP25 000 VND
- Nuo 20 IP25 000 VND
- Nuo 50 IP25 000 VND
- Nuo 100 IP25 000 VND
- Nuo 200 IP25 000 VND
- Nuo 500 IP25 000 VND
- Nuo 1000 IP22 000 VND
- Nuo 2000 IP20 000 VND
- 1 IP75 000 VND
- Nuo 3 IP70 000 VND
- Nuo 5 IP65 000 VND
- Nuo 10 IP60 000 VND
- Nuo 50 IP60 000 VND
- Nuo 100 IP60 000 VND
- Nuo 200 IP60 000 VND
- Nuo 500 IP55 000 VND
Du patikimi būdai autentifikuoti proxy Selenium aplinkoje
Pasirinkite būdą, atitinkantį jūsų programavimo kalbos vykdymo aplinką ir naršyklės tvarkyklę:
| Metodas | Konfigūracijos sintaksė | Geriausiai tinka |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Greičiausia Python sąranka; palaiko karštąjį proxy keitimą seanso metu |
| Chrome autentifikavimo plėtinys | Įkelkite supakuotą plėtinį, apdorojantį chrome.webRequest.onAuthRequired | Standartiniam Selenium su Python, Java, C# ir undetected-chromedriver |
| Perėjimas prie Playwright | browser.newContext({ proxy: { server, username, password } }) | Integruotam kiekvieno konteksto proxy autentifikavimui be jokių plėtinių |
Našumo patarimai renkant duomenis su Selenium per proxy
- Nustatykite
options.page_load_strategy = 'eager', kad WebDriver pradėtų sąveiką iškart, kai DOM tampa interaktyvus, nelaukdamas lėtų trečiųjų šalių sekimo priemonių - Naudokite
--headless=new(Chrome 109+), jei paleidžiate be lango (headless), kad Chrome plėtiniai ir proxy autentifikavimas veiktų identiškai kaip ir įprastu režimu - Išjunkite vaizdų atvaizdavimą Chrome nustatymuose, kai renkate tik tekstinius produktų duomenis
- Visada apgaubkite tvarkyklę
try / finally: driver.quit()bloku, kad išvengtumėte likusių našlaičių Chromium procesų
Žingsnis po žingsnio
- 1
Įdiekite selenium-wire
Paleiskite
pip install selenium-wiresavo Python virtualiojoje aplinkoje. - 2
Apibrėžkite savo VinaProxy proxy žodyną
Suformatuokite prisijungimo duomenis taip:
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}. - 3
Paleiskite webdriver.Chrome su seleniumwire_options
Inicijuokite
driver = webdriver.Chrome(seleniumwire_options=sw_options). - 4
Patikrinkite išeinantį IP adresą
Eikite į
driver.get('https://vinaproxy.com/api/my-ip')ir įsitikinkite, kad JSON atsakyme rodomas jūsų proxy IP.
Dažnai užduodami klausimai
Kodėl `--proxy-server=http://user:pass@ip:port` neveikia ChromeOptions?
Chromium sąmoningai pašalina user:pass@ iš komandinės eilutės --proxy-server vėliavėlės. Šią problemą sklandžiai išsprendžia selenium-wire, onAuthRequired plėtinys arba Playwright.
Ar galiu pakeisti proxy neperleisdamas Chrome su selenium-wire?
Taip. Bet kuriuo metu priskirkite naują žodyną driver.proxy = {'http': 'http://...', 'https': 'http://...'} ir aktyvus išeinantis proxy bus pakeistas akimirksniu.
Ar Chrome proxy plėtiniai veikia headless režimu?
Taip, jei vietoje pasenusios --headless vėliavėlės nurodysite --headless=new.
Naudokite Selenium WebDriver dideliu mastu su neribotais statiniais IP
Akimirksniu paruošti Dedicated IPv4 ir Static ISP proxy 7 šalyse.
Pirkti Selenium proxy