Kā iestatīt autentificētu proxy Selenium WebDriver
Updated:
Standarta ChromeDriver --proxy-server=http://ip:port karodziņi ignorē iekļautos user:pass akreditācijas datus un parāda bloķējošu pieteikšanās dialoglodziņu. Lai bez problēmām izmantotu VinaProxy autentificētos HTTP(S) proxy Selenium vidē, nododiet savus akreditācijas datus, izmantojot selenium-wire, vai ielādējiet nelielu Chrome fona paplašinājumu ar onAuthRequired.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 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 IP75 000 ₫
- 3+ IP70 000 ₫
- 5+ IP65 000 ₫
- 10+ IP60 000 ₫
- 50+ IP60 000 ₫
- 100+ IP60 000 ₫
- 200+ IP60 000 ₫
- 500+ IP55 000 ₫
Divi uzticami veidi, kā autentificēt proxy Selenium
Izvēlieties pieeju, kas atbilst jūsu programmēšanas valodas izpildlaikam un pārlūka draiverim:
| Pieeja | Konfigurācijas sintakse | Vispiemērotākais |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Ātrākā Python iestatīšana; atbalsta tūlītēju proxy nomaiņu sesijas laikā |
| Chrome Auth Extension | Ielādējiet zip arhīva paplašinājumu, kas apstrādā chrome.webRequest.onAuthRequired | Standarta Selenium risinājumiem Python, Java, C# un undetected-chromedriver vidē |
| Migrate to Playwright | browser.newContext({ proxy: { server, username, password } }) | Iebūvēta katra konteksta proxy autentifikācija bez nepieciešamības pēc paplašinājumiem |
Veiktspējas padomi Selenium datu vākšanai, izmantojot proxy
- Iestatiet
options.page_load_strategy = 'eager', lai WebDriver varētu mijiedarboties, tiklīdz DOM kļūst interaktīvs, negaidot lēnus trešo pušu izsekotājus - Izmantojiet
--headless=new(Chrome 109+), ja palaižat bezgalvas režīmā, lai Chrome paplašinājumi un proxy autentifikācija darbotos identiski kā parastajā režīmā - Atspējojiet attēlu renderēšanu Chrome iestatījumos, veicot tikai teksta produktu datu vākšanu
- Vienmēr ietveriet savu draiveri
try / finally: driver.quit()blokā, lai novērstu nenoslēgtus Chromium procesus
Soli pa solim
- 1
Instalējiet selenium-wire
Palaidiet
pip install selenium-wiresavā Python virtuālajā vidē. - 2
Definējiet savu VinaProxy proxy vārdnīcu
Formatējiet savus akreditācijas datus šādi:
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}. - 3
Palaidiet webdriver.Chrome ar seleniumwire_options
Inicializējiet
driver = webdriver.Chrome(seleniumwire_options=sw_options). - 4
Pārbaudiet izejošo IP adresi
Atveriet
driver.get('https://vinaproxy.com/api/my-ip')un pārliecinieties, ka JSON atbildē ir redzama jūsu proxy IP adrese.
Biežāk uzdotie jautājumi
Kāpēc `--proxy-server=http://user:pass@ip:port` nedarbojas ChromeOptions?
Chromium apzināti noņem user:pass@ no komandrindas karodziņa --proxy-server. Šo problēmu lieliski atrisina selenium-wire, onAuthRequired paplašinājuma vai Playwright izmantošana.
Vai programmā selenium-wire var nomainīt proxy, nepārstartējot Chrome?
Jā. Jebkurā brīdī piešķiriet jaunu vārdnīcu mainīgajam driver.proxy = {'http': 'http://...', 'https': 'http://...'}, lai tūlītēji pārslēgtu aktīvo augšupējo proxy.
Vai Chrome proxy paplašinājumi darbojas bezgalvas (headless) režīmā?
Jā, ja vien mantotā karodziņa --headless vietā norādāt --headless=new.
Darbiniet Selenium WebDriver lielā mērogā ar neierobežotām statiskajām IP
Tūlītēji pieejami Dedicated IPv4 un Static ISP proxy 7 valstīs.
Pirkt Selenium proxy