Ինչպես կարգավորել նույնականացմամբ պրոքսի Selenium WebDriver-ում
Updated:
Ստանդարտ ChromeDriver-ի --proxy-server=http://ip:port դրոշակներն անտեսում են ներկառուցված user:pass տվյալները և բացում մուտքի արգելափակող պատուհան: VinaProxy-ի նույնականացմամբ HTTP(S) պրոքսիները Selenium-ում անխափան օգտագործելու համար փոխանցեք ձեր տվյալները selenium-wire-ի միջոցով կամ բեռնեք Chrome-ի փոքր ֆոնային onAuthRequired ընդլայնում:
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 Auth ընդլայնում | Բեռնել zip արխիվացված ընդլայնում, որը մշակում է chrome.webRequest.onAuthRequired | Ստանդարտ Selenium Python-ի, Java-ի, C#-ի և undetected-chromedriver-ի համար |
| Անցում Playwright-ին | browser.newContext({ proxy: { server, username, password } }) | Պրոքսիի ներկառուցված նույնականացում յուրաքանչյուր կոնտեքստի համար՝ առանց ընդլայնումների |
Արտադրողականության խորհուրդներ պրոքսիներով Selenium scraping-ի համար
- Սահմանեք
options.page_load_strategy = 'eager', որպեսզի WebDriver-ը սկսի փոխգործակցել հենց DOM-ը դառնա ինտերակտիվ՝ առանց սպասելու երրորդ կողմի դանդաղ թրեքերներին - Օգտագործեք
--headless=new(Chrome 109+), եթե աշխատում եք headless ռեժիմով, որպեսզի Chrome-ի ընդլայնումներն ու պրոքսիի նույնականացումն աշխատեն այնպես, ինչպես տեսանելի ռեժիմում - Անջատեք նկարների ցուցադրումը Chrome-ի կարգավորումներում, երբ հավաքում եք միայն տեքստային ապրանքային տվյալներ
- Միշտ տեղադրեք ձեր դրայվերը
try / finally: driver.quit()բլոկում՝ Chromium-ի մնացորդային պրոցեսները կանխելու համար
Քայլ առ քայլ
- 1
Տեղադրել selenium-wire
Գործարկեք
pip install selenium-wireձեր Python վիրտուալ միջավայրում: - 2
Սահմանեք ձեր VinaProxy պրոքսիի dictionary-ն
Ձևաչափեք ձեր մուտքի տվյալները որպես
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-ում:
Այո: Ցանկացած պահի վերագրեք նոր dictionary driver.proxy = {'http': 'http://...', 'https': 'http://...'}-ին՝ ընթացիկ ակտիվ պրոքսին արագ փոխարինելու համար:
Արդյո՞ք Chrome-ի պրոքսի ընդլայնումներն աշխատում են headless ռեժիմում:
Այո, քանի դեռ հին --headless դրոշակի փոխարեն փոխանցում եք --headless=new:
Գործարկեք Selenium WebDriver-ը մեծ մասշտաբով անսահմանափակ ստատիկ IP-ներով
Ակնթարթային Dedicated IPv4 և Static ISP պրոքսիներ 7 երկրներում:
Գնել Selenium պրոքսիներ