Paano mag-set up ng authenticated proxy sa Selenium WebDriver
Updated:
Binabalewala ng mga karaniwang ChromeDriver --proxy-server=http://ip:port flag ang mga inline na user:pass credential at nagpapakita ng nakaharang na login dialog. Upang maayos na magamit ang mga VinaProxy authenticated HTTP(S) proxy sa Selenium, ipasa ang iyong mga credential sa pamamagitan ng selenium-wire o mag-load ng maliit na Chrome onAuthRequired background extension.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 1 IP₫40,000
- 5+ na IP₫35,000
- 10+ na IP₫25,000
- 20+ na IP₫25,000
- 50+ na IP₫25,000
- 100+ na IP₫25,000
- 200+ na IP₫25,000
- 500+ na IP₫25,000
- 1000+ na IP₫22,000
- 2000+ na IP₫20,000
- 1 IP₫75,000
- 3+ na IP₫70,000
- 5+ na IP₫65,000
- 10+ na IP₫60,000
- 50+ na IP₫60,000
- 100+ na IP₫60,000
- 200+ na IP₫60,000
- 500+ na IP₫55,000
Dalawang maaasahang paraan para mag-authenticate ng mga proxy sa Selenium
Piliin ang paraang angkop sa iyong language runtime at browser driver:
| Paraan | Syntax ng Configuration | Pinakamainam Para Sa |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Pinakamabilis na setup sa Python; sumusuporta sa pagpapalit ng mga proxy habang tumatakbo ang session |
| Chrome Auth Extension | Mag-load ng naka-zip na extension na humahawak sa chrome.webRequest.onAuthRequired | Standard Selenium sa Python, Java, C#, at undetected-chromedriver |
| Lumipat sa Playwright | browser.newContext({ proxy: { server, username, password } }) | Native na per-context proxy auth nang hindi nangangailangan ng anumang extension |
Mga tip sa performance para sa pag-scrape gamit ang Selenium at mga proxy
- I-set ang
options.page_load_strategy = 'eager'upang makipag-ugnayan agad ang WebDriver sa sandaling maging interactive ang DOM nang hindi naghihintay sa mababagal na third-party tracker - Gamitin ang
--headless=new(Chrome 109+) kung nagpapatakbo sa headless mode upang ang mga Chrome extension at proxy auth ay gumana nang katulad ng sa headed mode - I-disable ang rendering ng imahe sa pamamagitan ng mga preference sa Chrome kapag nag-i-scrape ng text-only na data ng produkto
- Palaging ibalot ang iyong driver sa isang
try / finally: driver.quit()block upang maiwasan ang mga naulilang proseso ng Chromium
Sunod-sunod na hakbang
- 1
I-install ang selenium-wire
Patakbuhin ang
pip install selenium-wiresa iyong Python virtual environment. - 2
Tukuyin ang iyong VinaProxy proxy dictionary
I-format ang iyong mga credential bilang
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}. - 3
Ilunsad ang webdriver.Chrome gamit ang seleniumwire_options
I-initialize ang
driver = webdriver.Chrome(seleniumwire_options=sw_options). - 4
I-verify ang exit IP address
Pumunta sa
driver.get('https://vinaproxy.com/api/my-ip')at kumpirmahing ipinapakita ng tugon ng JSON ang iyong proxy IP.
Mga madalas itanong
Bakit hindi gumagana ang `--proxy-server=http://user:pass@ip:port` sa ChromeOptions?
Sadyang tinatanggal ng Chromium ang user:pass@ mula sa command-line flag na --proxy-server. Nalulutas ito nang maayos sa pamamagitan ng paggamit ng selenium-wire, isang onAuthRequired extension, o Playwright.
Maaari ko bang palitan ang mga proxy nang hindi nire-restart ang Chrome sa selenium-wire?
Oo. Magtalaga ng bagong dictionary sa driver.proxy = {'http': 'http://...', 'https': 'http://...'} anumang oras upang palitan agad ang aktibong upstream proxy.
Gumagana ba ang mga Chrome proxy extension sa headless mode?
Oo, basta't gagamitin mo ang --headless=new sa halip na ang lumang flag na --headless.
Patakbuhin ang Selenium WebDriver nang malawakan gamit ang mga unmetered na static IP
Instant na Dedicated IPv4 at Static ISP proxy sa 7 bansa.
Bumili ng Selenium Proxies