Cara menyediakan proksi berautentikasi dalam Selenium WebDriver
Updated:
Bendera standard ChromeDriver --proxy-server=http://ip:port mengabaikan kelayakan sebaris user:pass dan memaparkan dialog log masuk yang menghalang. Untuk menggunakan proksi HTTP(S) berautentikasi VinaProxy secara lancar dalam Selenium, hantar kelayakan anda melalui selenium-wire atau muatkan sambungan latar belakang Chrome onAuthRequired yang kecil.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 1 IP₫40,000
- 5+ IP₫35,000
- 10+ IP₫25,000
- 20+ IP₫25,000
- 50+ IP₫25,000
- 100+ IP₫25,000
- 200+ IP₫25,000
- 500+ IP₫25,000
- 1000+ IP₫22,000
- 2000+ IP₫20,000
- 1 IP₫75,000
- 3+ IP₫70,000
- 5+ IP₫65,000
- 10+ IP₫60,000
- 50+ IP₫60,000
- 100+ IP₫60,000
- 200+ IP₫60,000
- 500+ IP₫55,000
Dua kaedah andal untuk mengautentikasi proksi dalam Selenium
Pilih pendekatan yang sepadan dengan persekitaran bahasa dan pemacu pelayar anda:
| Pendekatan | Sintaks Konfigurasi | Paling Sesuai Untuk |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Persediaan Python terpantas; menyokong pertukaran proksi terus di pertengahan sesi |
| Sambungan Auth Chrome | Muatkan sambungan berzip yang mengendalikan chrome.webRequest.onAuthRequired | Selenium standard merentasi Python, Java, C#, dan undetected-chromedriver |
| Beralih ke Playwright | browser.newContext({ proxy: { server, username, password } }) | Auth proksi natif bagi setiap konteks tanpa memerlukan sebarang sambungan |
Petua prestasi untuk pengikisan Selenium melalui proksi
- Tetapkan
options.page_load_strategy = 'eager'supaya WebDriver berinteraksi sebaik sahaja DOM interaktif tanpa menunggu penjejak pihak ketiga yang perlahan - Gunakan
--headless=new(Chrome 109+) jika dijalankan secara headless supaya sambungan Chrome dan auth proksi berfungsi serupa dengan mod headed - Lumpuhkan pemaparan imej melalui keutamaan Chrome apabila mengikis data produk teks sahaja
- Sentiasa balut pemacu anda dalam blok
try / finally: driver.quit()untuk mengelakkan proses Chromium terbiar
Langkah demi langkah
- 1
Pasang selenium-wire
Jalankan
pip install selenium-wiredalam persekitaran maya Python anda. - 2
Tentukan kamus proksi VinaProxy anda
Formatkan kelayakan anda sebagai
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}. - 3
Lancarkan webdriver.Chrome dengan seleniumwire_options
Mulakan
driver = webdriver.Chrome(seleniumwire_options=sw_options). - 4
Sahkan alamat IP keluar
Navigasi ke
driver.get('https://vinaproxy.com/api/my-ip')dan sahkan respons JSON menunjukkan IP proksi anda.
Soalan lazim
Mengapakah `--proxy-server=http://user:pass@ip:port` tidak berfungsi dalam ChromeOptions?
Chromium sengaja membuang user:pass@ daripada bendera baris perintah --proxy-server. Menggunakan selenium-wire, sambungan onAuthRequired, atau Playwright menyelesaikan masalah ini secara lancar.
Bolehkah saya menukar proksi tanpa memulakan semula Chrome dalam selenium-wire?
Ya. Tetapkan kamus baharu pada driver.proxy = {'http': 'http://...', 'https': 'http://...'} pada bila-bila masa untuk menukar proksi huluan yang aktif secara terus.
Adakah sambungan proksi Chrome berfungsi dalam mod headless?
Ya, asalkan anda memasukkan --headless=new dan bukannya bendera legasi --headless.
Jalankan Selenium WebDriver pada skala besar dengan IP statik tanpa had
Proksi Dedicated IPv4 dan ISP Statik segera merentasi 7 negara.
Beli Proksi Selenium