როგორ გავმართოთ ავტორიზებული პროქსი Selenium WebDriver-ში
Updated:
სტანდარტული 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 IP40 000 VND
- 5+ IP35 000 VND
- 10+ IP25 000 VND
- 20+ IP25 000 VND
- 50+ IP25 000 VND
- 100+ IP25 000 VND
- 200+ IP25 000 VND
- 500+ IP25 000 VND
- 1000+ IP22 000 VND
- 2000+ IP20 000 VND
- 1 IP75 000 VND
- 3+ IP70 000 VND
- 5+ IP65 000 VND
- 10+ IP60 000 VND
- 50+ IP60 000 VND
- 100+ IP60 000 VND
- 200+ IP60 000 VND
- 500+ IP55 000 VND
პროქსის ავტორიზაციის ორი საიმედო გზა Selenium-ში
აირჩიეთ მიდგომა თქვენი პროგრამირების ენის გარემოსა და ბრაუზერის დრაივერის მიხედვით:
| მიდგომა | კონფიგურაციის სინტაქსი | საუკეთესოა შემდეგისთვის |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | ყველაზე სწრაფი გამართვა Python-ისთვის; მხარს უჭერს პროქსების ცხელ ჩანაცვლებას სესიის მსვლელობისას |
| Chrome Auth Extension | დაარქივებული გაფართოების ჩატვირთვა, რომელიც ამუშავებს chrome.webRequest.onAuthRequired-ს | სტანდარტული Selenium Python-ისთვის, Java-სთვის, C#-ისთვის და undetected-chromedriver-ისთვის |
| Migrate to Playwright | browser.newContext({ proxy: { server, username, password } }) | პროქსის ჩაშენებული ავტორიზაცია თითოეული კონტექსტისთვის ყოველგვარი გაფართოების გარეშე |
წარმადობის რჩევები Selenium-ით სკრეიპინგისთვის პროქსების გავლით
- მიუთითეთ
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-ის პროქსის ლექსიკონი
დააფორმატეთ თქვენი მონაცემები შემდეგნაირად:
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 დროშის ნაცვლად გადასცემთ --headless=new-ს.
ამუშავეთ Selenium WebDriver მასშტაბურად შეუზღუდავი სტატიკური IP-ებით
მყისიერი Dedicated IPv4 და Static ISP პროქსები 7 ქვეყანაში.
შეიძინეთ Selenium პროქსები