Selenium WebDriver-da autentifikatsiyalangan proksini sozlash usuli
Updated:
Standart ChromeDriver --proxy-server=http://ip:port flaglari qator ichidagi user:pass ma'lumotlarini e'tiborsiz qoldiradi va bloklovchi kirish dialog oynasini chiqaradi. Selenium-da VinaProxy autentifikatsiyalangan HTTP(S) proksilaridan muammosiz foydalanish uchun hisob ma'lumotlaringizni selenium-wire orqali uzating yoki kichik Chrome onAuthRequired fon kengaytmasini yuklang.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 1 ta IP40 000 ₫
- 5+ ta IP35 000 ₫
- 10+ ta IP25 000 ₫
- 20+ ta IP25 000 ₫
- 50+ ta IP25 000 ₫
- 100+ ta IP25 000 ₫
- 200+ ta IP25 000 ₫
- 500+ ta IP25 000 ₫
- 1000+ ta IP22 000 ₫
- 2000+ ta IP20 000 ₫
- 1 ta IP75 000 ₫
- 3+ ta IP70 000 ₫
- 5+ ta IP65 000 ₫
- 10+ ta IP60 000 ₫
- 50+ ta IP60 000 ₫
- 100+ ta IP60 000 ₫
- 200+ ta IP60 000 ₫
- 500+ ta IP55 000 ₫
Selenium-da proksilarni autentifikatsiya qilishning ikkita ishonchli usuli
Dasturlash tili muhiti va brauzer drayveriga mos keladigan yondashuvni tanlang:
| Yondashuv | Konfiguratsiya sintaksisi | Quyidagilar uchun tavsiya etiladi |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Python-da eng tez sozlash; sessiya davomida proksilarni tezkor almashtirishni qo'llab-quvvatlaydi |
| Chrome Auth Extension | chrome.webRequest.onAuthRequired hodisasini boshqaruvchi arxivlangan kengaytmani yuklash | Python, Java, C# va undetected-chromedriver bo'ylab standart Selenium |
| Migrate to Playwright | browser.newContext({ proxy: { server, username, password } }) | Hech qanday kengaytmalarsiz har bir kontekst uchun o'rnatilgan proksi autentifikatsiyasi |
Selenium-da proksi orqali skreyping unumdorligini oshirish maslahatlari
- DOM interaktiv holatga kelishi bilanoq, sekin ishlovchi uchinchi tomon trekerlarini kutmasdan WebDriver ishlashi uchun
options.page_load_strategy = 'eager'parametrini o'rnating - Headless rejimida ishlayotganda
--headless=new(Chrome 109+) flagidan foydalaning, shunda Chrome kengaytmalari va proksi autentifikatsiyasi grafik interfeysli rejim kabi ishlaydi - Faqat matnli mahsulot ma'lumotlarini skreyping qilishda Chrome sozlamalari orqali rasmlarni yuklashni o'chirib qo'ying
- Qolib ketgan Chromium jarayonlarining oldini olish uchun drayveringizni doimo
try / finally: driver.quit()blokiga oling
Bosqichma-bosqich
- 1
selenium-wire-ni o'rnatish
Python virtual muhitingizda
pip install selenium-wirebuyrug'ini ishga tushiring. - 2
VinaProxy proksi lug'atini belgilang
Hisob ma'lumotlaringizni
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}shaklida formatlang. - 3
seleniumwire_options bilan webdriver.Chrome-ni ishga tushiring
driver = webdriver.Chrome(seleniumwire_options=sw_options)orqali initsializatsiya qiling. - 4
Chiqish IP-manzilini tekshiring
driver.get('https://vinaproxy.com/api/my-ip')sahifasiga o'ting va JSON javobida proksi IP-manzilingiz ko'rsatilganini tasdiqlang.
Ko‘p so‘raladigan savollar
Nima uchun ChromeOptions-da `--proxy-server=http://user:pass@ip:port` ishlamaydi?
Chromium buyruq satridagi --proxy-server flagidan user:pass@ qismini ataylab olib tashlaydi. selenium-wire, onAuthRequired kengaytmasi yoki Playwright dasturidan foydalanish bu muammoni to'liq hal qiladi.
selenium-wire-da Chrome-ni qayta ishga tushirmasdan proksilarni almashtirish mumkinmi?
Ha. Faol chiquvchi proksini darhol almashtirish uchun istalgan vaqtda yangi lug'atni driver.proxy = {'http': 'http://...', 'https': 'http://...'} ko'rinishida belgilashingiz mumkin.
Chrome proksi kengaytmalari headless rejimida ishlaydimi?
Ha, eski --headless flagi o'rniga --headless=new flagini uzatsangiz bo'ldi.
Cheksiz statik IP-lar bilan Selenium WebDriver-ni keng miqyosda ishga tushiring
7 ta mamlakat bo'ylab lahzalik Dedicated IPv4 va Static ISP proksilari.
Selenium proksilarini sotib olish