Selenium WebDriver에서 인증된 프록시 설정하는 방법
업데이트:
기본 ChromeDriver의 --proxy-server=http://ip:port 옵션은 인라인 user:pass 계정 정보를 무시하고 로그인 팝업 창을 띄워 자동화를 중단시킵니다. Selenium에서 VinaProxy의 인증된 HTTP(S) 프록시를 원활하게 적용하려면 selenium-wire 라이브러리를 사용하거나 Chrome onAuthRequired 백그라운드 확장 프로그램을 로드해야 합니다.
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
Selenium에서 프록시 인증을 처리하는 두 가지 안정적인 방법
사용 중인 개발 언어 환경과 브라우저 드라이버 구조에 적합한 방식을 선택하세요:
| 구현 방식 | 코드 설정 구문 | 최적 사용 환경 |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Python 환경에서 가장 빠른 구성. 세션 실행 도중 프록시 IP 실시간 교체 가능 |
| Chrome Auth 확장 프로그램 | chrome.webRequest.onAuthRequired를 처리하는 ZIP 확장 프로그램 로드 | Python, Java, C# 표준 Selenium 및 undetected-chromedriver 지원 |
| Playwright로 마이그레이션 | browser.newContext({ proxy: { server, username, password } }) | 확장 프로그램 없이 컨텍스트별 네이티브 프록시 인증 지원 |
프록시 기반 Selenium 스크래핑 성능 최적화 팁
options.page_load_strategy = 'eager'로 설정하여 느린 서드파티 추적 스크립트를 기다리지 않고 DOM이 활성화되는 즉시 상호작용하도록 합니다- 헤드리스 환경에서는
--headless=new(Chrome 109+) 플래그를 사용하여 확장 프로그램과 프록시 인증이 일반 모드와 동일하게 작동하도록 보장합니다 - 텍스트 데이터만 수집하는 경우 Chrome 환경설정에서 이미지 렌더링을 비활성화하여 대역폭을 절약하고 렌더링 속도를 대폭 향상시킵니다
- 고아 Chromium 프로세스가 메모리에 잔류하지 않도록 항상
try / finally: driver.quit()블록으로 드라이버를 정리하세요
단계별 안내
- 1
selenium-wire 설치
Python 가상 환경에서
pip install selenium-wire를 실행합니다. - 2
VinaProxy 프록시 딕셔너리 정의
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}형태로 자격 증명을 작성합니다. - 3
seleniumwire_options를 지정하여 Chrome 실행
driver = webdriver.Chrome(seleniumwire_options=sw_options)로 브라우저를 초기화합니다. - 4
출구 IP 주소 검증
driver.get('https://vinaproxy.com/api/my-ip')로 이동하여 반환된 JSON에서 프록시 IP를 확인합니다.
자주 묻는 질문
ChromeOptions의 '--proxy-server=http://user:pass@ip:port' 플래그가 작동하지 않는 이유는?
Chromium 자체 보안 정책상 커맨드라인 매개변수에서 user:pass@ 문자열을 무시하기 때문입니다. selenium-wire, onAuthRequired 확장 프로그램 또는 Playwright를 사용하면 깔끔하게 해결됩니다.
selenium-wire에서 Chrome을 재시작하지 않고 프록시를 동적으로 바꿀 수 있나요?
네, 가능합니다. 실행 중 언제든지 driver.proxy = {'http': 'http://...', 'https': 'http://...'}에 새 딕셔너리를 할당하면 프록시가 즉시 전환됩니다.
Chrome 프록시 확장 프로그램이 헤드리스 모드에서도 작동하나요?
네. 구형 --headless 대신 --headless=new 플래그를 전달하면 헤드리스에서도 정상 작동합니다.
대역폭 무제한 고정 IP로 Selenium WebDriver 대규모 자동화
전 세계 7개국의 전용 IPv4 및 고정 주거용 ISP 프록시 즉시 발급.
Selenium 프록시 구매하기