Чӣ тавр проксиро бо аутентификатсия дар Selenium WebDriver танзим кардан мумкин аст
Updated:
Парчамҳои стандартии ChromeDriver --proxy-server=http://ip:port маълумоти воридшавии сатрии user:pass-ро нодида мегиранд ва равзанаи бастакунандаи воридшавиро нишон медиҳанд. Барои истифодаи дурусти проксиҳои HTTP(S)-и дорои аутентификатсияи VinaProxy дар Selenium, маълумоти худро тавассути selenium-wire интиқол диҳед ё васеъшавии хурди пасипардагии onAuthRequired-ро барои Chrome бор кунед.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 1 IP40 000 ₫
- 5+ IP35 000 ₫
- 10+ IP25 000 ₫
- 20+ IP25 000 ₫
- 50+ IP25 000 ₫
- 100+ IP25 000 ₫
- 200+ IP25 000 ₫
- 500+ IP25 000 ₫
- 1000+ IP22 000 ₫
- 2000+ IP20 000 ₫
- 1 IP75 000 ₫
- 3+ IP70 000 ₫
- 5+ IP65 000 ₫
- 10+ IP60 000 ₫
- 50+ IP60 000 ₫
- 100+ IP60 000 ₫
- 200+ IP60 000 ₫
- 500+ IP55 000 ₫
Ду роҳи боэътимоди аутентификатсияи проксиҳо дар Selenium
Равишеро интихоб кунед, ки ба муҳити иҷрои забон ва драйвери браузери шумо мувофиқ аст:
| Равиш | Синтаксиси танзимот | Беҳтарин барои |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Танзимоти зудтарин дар Python; иваз кардани фаврии проксиҳоро ҳангоми сессия дастгирӣ мекунад |
| Васеъшавии аутентификатсияи Chrome | Боркунии васеъшавии фишурдашудаи zip, ки chrome.webRequest.onAuthRequired-ро коркард мекунад | Selenium-и стандартӣ дар Python, Java, C# ва undetected-chromedriver |
| Гузариш ба Playwright | browser.newContext({ proxy: { server, username, password } }) | Аутентификатсияи модарии прокси барои ҳар як контекст бидуни ниёз ба ягон васеъшавӣ |
Маслиҳатҳо оид ба маҳсулнокии скрейпинг дар Selenium тавассути проксиҳо
options.page_load_strategy = 'eager'-ро таъин кунед, то WebDriver бидуни интизории трекерҳои сусти беруна, ҳамин ки DOM интерактиви шуд, фавран ҳамкорӣ кунад- Агар дар режими бесар кор кунед,
--headless=new(Chrome 109+)-ро истифода баред, то васеъшавиҳои Chrome ва аутентификатсияи прокси мисли режими графикӣ кор кунанд - Ҳангоми скрейпинги маълумоти танҳо матнии маҳсулот, намоиши тасвирҳоро тавассути танзимоти Chrome хомӯш кунед
- Ҳамеша драйвери худро дар блоки
try / finally: driver.quit()ҷойгир кунед, то аз боқӣ мондани равандҳои бесоҳиби Chromium пешгирӣ шавад
Қадам ба қадам
- 1
Насби selenium-wire
pip install selenium-wire-ро дар муҳити виртуалии Python-и худ иҷро кунед. - 2
Муайян кардани луғати проксии VinaProxy-и худ
Маълумоти воридшавии худро дар шакли
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}форматиронӣ кунед. - 3
Оғози webdriver.Chrome бо seleniumwire_options
driver = webdriver.Chrome(seleniumwire_options=sw_options)-ро оғоз бахшед. - 4
Тасдиқи суроғаи ниҳоии IP
Ба
driver.get('https://vinaproxy.com/api/my-ip')гузаред ва тасдиқ кунед, ки посухи JSON суроғаи IP-и проксии шуморо нишон медиҳад.
Саволҳои зиёд такроршаванда
Чаро `--proxy-server=http://user:pass@ip:port` дар ChromeOptions кор намекунад?
Chromium қасдан user:pass@-ро аз парчами сатри фармони --proxy-server хориҷ мекунад. Истифодаи selenium-wire, васеъшавии onAuthRequired ё Playwright ин масъаларо ба осонӣ ҳал мекунад.
Оё метавонам проксиҳоро бидуни бозоғозии Chrome дар selenium-wire иваз кунам?
Ҳа. Дар дилхоҳ вақт луғати навро ба driver.proxy = {'http': 'http://...', 'https': 'http://...'} таъин кунед, то проксии фаъол фавран иваз карда шавад.
Оё васеъшавиҳои проксии Chrome дар режими бесар кор мекунанд?
Ҳа, ба шарте ки шумо ба ҷои парчами кӯҳнашудаи --headless парчами --headless=new-ро пешниҳод кунед.
Selenium WebDriver-ро бо миқдори калон ва IP-ҳои статикии номаҳдуд иҷро кунед
Проксиҳои фаврии Dedicated IPv4 ва Static ISP дар 7 кишвар.
Харидани проксиҳо барои Selenium