Kuinka ottaa käyttöön todennettu välityspalvelin Selenium WebDriverissa
Updated:
Tavalliset ChromeDriverin --proxy-server=http://ip:port -valitsimet jättävät huomiotta osoitteen sisäiset user:pass -tunnukset ja avaavat estävän kirjautumisikkunan. Käyttääksesi todennettuja VinaProxy-HTTP(S)-välityspalvelimia siististi Seleniumissa, välitä tunnuksesi selenium-wire -kirjaston kautta tai lataa kevyt Chromen onAuthRequired -taustalaajennus.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 1 IP40 000 VND
- 5+ IP:tä35 000 VND
- 10+ IP:tä25 000 VND
- 20+ IP:tä25 000 VND
- 50+ IP:tä25 000 VND
- 100+ IP:tä25 000 VND
- 200+ IP:tä25 000 VND
- 500+ IP:tä25 000 VND
- 1000+ IP:tä22 000 VND
- 2000+ IP:tä20 000 VND
- 1 IP75 000 VND
- 3+ IP:tä70 000 VND
- 5+ IP:tä65 000 VND
- 10+ IP:tä60 000 VND
- 50+ IP:tä60 000 VND
- 100+ IP:tä60 000 VND
- 200+ IP:tä60 000 VND
- 500+ IP:tä55 000 VND
Kaksi luotettavaa tapaa todentaa välityspalvelimet Seleniumissa
Valitse ohjelmointikieleesi ja selainajuriisi parhaiten sopiva lähestymistapa:
| Lähestymistapa | Määrityssyntaksi | Paras käyttökohde |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Nopein Python-ratkaisu; tukee välityspalvelinten vaihtoa lennosta kesken istunnon |
| Chromen todennuslaajennus | Lataa pakattu laajennus, joka käsittelee tapahtumaa chrome.webRequest.onAuthRequired | Standardi Selenium Pythonille, Javalle, C#:lle ja undetected-chromedriver -kirjastolle |
| Siirtyminen Playwrightiin | browser.newContext({ proxy: { server, username, password } }) | Natiivi kontekstikohtainen välityspalvelimen todennus ilman laajennuksia |
Suorituskykyvinkkejä Selenium-tiedonkeruuseen välityspalvelinten kautta
- Aseta
options.page_load_strategy = 'eager', jotta WebDriver voi toimia heti, kun DOM on vuorovaikutteinen, odottamatta hitaita kolmannen osapuolen seuraimia - Käytä valitsinta
--headless=new(Chrome 109+), jos ajat selainta taustalla, jotta Chrome-laajennukset ja välityspalvelimen todennus toimivat täysin samalla tavalla kuin graafisessa tilassa - Ota kuvien renderöinti pois käytöstä Chromen asetuksista, kun keräät pelkkää tekstiä sisältäviä tuotetietoja
- Kääri ajuri aina
try / finally: driver.quit()-lohkoon, jotta estät orvoiksi jäävät Chromium-prosessit
Vaihe vaiheelta
- 1
Asenna selenium-wire
Suorita
pip install selenium-wirePython-virtuaaliympäristössäsi. - 2
Määritä VinaProxy-välityspalvelinsanakirja
Muotoile kirjautumistietosi seuraavasti:
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}. - 3
Käynnistä webdriver.Chrome parametrilla seleniumwire_options
Alusta
driver = webdriver.Chrome(seleniumwire_options=sw_options). - 4
Tarkista ulospäin näkyvä IP-osoite
Siirry osoitteeseen
driver.get('https://vinaproxy.com/api/my-ip')ja varmista, että JSON-vastaus näyttää välityspalvelimesi IP-osoitteen.
Usein kysytyt kysymykset
Miksi `--proxy-server=http://user:pass@ip:port` ei toimi ChromeOptionsissa?
Chromium poistaa tarkoituksellisesti osion user:pass@ komentorivin --proxy-server -valitsimesta. Ongelman ratkaisee siististi selenium-wire, onAuthRequired -laajennus tai Playwright.
Voinko vaihtaa välityspalvelinta käynnistämättä Chromea uudelleen selenium-wiressä?
Kyllä. Voit vaihtaa aktiivisen välityspalvelimen lennosta milloin tahansa määrittämällä uuden sanakirjan muuttujalle driver.proxy = {'http': 'http://...', 'https': 'http://...'}.
Toimivatko Chromen välityspalvelinlaajennukset headless-tilassa?
Kyllä, kunhan käytät valitsinta --headless=new vanhan --headless -valitsimen sijaan.
Aja Selenium WebDriveria laajassa mittakaavassa rajoittamattomilla staattisilla IP-osoitteilla
Heti saatavilla olevat dedikoidut IPv4- ja staattiset ISP-välityspalvelimet 7 maassa.
Osta Selenium-välityspalvelimia