របៀបដំឡើង proxy ដែលមានការផ្ទៀងផ្ទាត់ក្នុង Selenium WebDriver
Updated:
ទង់ ChromeDriver ស្តង់ដារ --proxy-server=http://ip:port មិនអើពើនឹងព័ត៌មានសម្ងាត់ user:pass ក្នុងបន្ទាត់ ហើយបង្ហាញប្រអប់ផ្ទាំងចូលដែលរារាំងដំណើរការ។ ដើម្បីប្រើ proxy HTTP(S) ដែលមានការផ្ទៀងផ្ទាត់របស់ VinaProxy យ៉ាងរលូនក្នុង Selenium សូមបញ្ជូនព័ត៌មានសម្ងាត់របស់អ្នកតាមរយៈ selenium-wire ឬផ្ទុក background extension តូចមួយរបស់ 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₫
វិធីសាស្រ្តដែលអាចទុកចិត្តបាន 2 យ៉ាងក្នុងការផ្ទៀងផ្ទាត់ proxy ក្នុង Selenium
ជ្រើសរើសវិធីសាស្រ្តដែលត្រូវនឹង language runtime និង browser driver របស់អ្នក៖
| វិធីសាស្រ្ត | Syntax កំណត់រចនាសម្ព័ន្ធ | ល្អបំផុតសម្រាប់ |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | ការដំឡើង Python លឿនបំផុត និងគាំទ្រការផ្លាស់ប្តូរ proxy ភ្លាមៗនៅពាក់កណ្តាល session |
| Chrome Auth Extension | ផ្ទុក extension ជា zip ដែលគ្រប់គ្រង chrome.webRequest.onAuthRequired | Selenium ស្តង់ដារលើ Python, Java, C# និង undetected-chromedriver |
| Migrate to Playwright | browser.newContext({ proxy: { server, username, password } }) | ការផ្ទៀងផ្ទាត់ proxy តាម context ផ្ទាល់ (native) ដោយមិនចាំបាច់ប្រើ extension ឡើយ |
គន្លឹះបង្កើនប្រសិទ្ធភាពសម្រាប់ការ scrape តាម proxy ជាមួយ Selenium
- កំណត់
options.page_load_strategy = 'eager'ដើម្បីឱ្យ WebDriver អាចធ្វើអន្តរកម្មបានភ្លាមៗនៅពេល DOM ដំណើរការ ដោយមិនបាច់រង់ចាំ third-party tracker យឺតៗឡើយ - ប្រើ
--headless=new(Chrome 109+) ប្រសិនបើដំណើរការ headless ដើម្បីឱ្យ extension របស់ Chrome និងការផ្ទៀងផ្ទាត់ proxy ដំណើរការដូចគ្នានឹងមុខងារ headed ដែរ - បិទការបង្ហាញរូបភាព (image rendering) តាមរយៈការកំណត់ Chrome នៅពេល scrape ទិន្នន័យផលិតផលដែលមានតែអត្ថបទ
- តែងតែដាក់ driver របស់អ្នកក្នុងប្លុក
try / finally: driver.quit()ដើម្បីការពារដំណើរការ Chromium ដែលនៅសល់ចោល (orphaned processes)
មួយជំហានម្តងៗ
- 1
ដំឡើង selenium-wire
ដំណើរការ
pip install selenium-wireនៅក្នុង Python virtual environment របស់អ្នក។ - 2
កំណត់ dictionary សម្រាប់ proxy 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 របស់អ្នក។
សំណួរដែលសួរញឹកញាប់
ហេតុអ្វីបានជា `--proxy-server=http://user:pass@ip:port` មិនដំណើរការក្នុង ChromeOptions?
Chromium ដក user:pass@ ចេញពីទង់ --proxy-server នៃ command-line ដោយចេតនា។ ការប្រើ selenium-wire, extension onAuthRequired ឬ Playwright អាចដោះស្រាយបញ្ហានេះបានយ៉ាងរលូន។
តើខ្ញុំអាចប្តូរ proxy ដោយមិនបាច់ restart Chrome ក្នុង selenium-wire បានទេ?
បាន។ កំណត់ dictionary ថ្មីទៅកាន់ driver.proxy = {'http': 'http://...', 'https': 'http://...'} នៅពេលណាក៏បាន ដើម្បីប្តូរ upstream proxy សកម្មភ្លាមៗ។
តើ extension proxy របស់ Chrome ដំណើរការក្នុងមុខងារ headless ដែរឬទេ?
ដំណើរការ ប្រសិនបើអ្នកបញ្ជូន --headless=new ជំនួសឱ្យទង់ --headless ចាស់។
ដំណើរការ Selenium WebDriver ទ្រង់ទ្រាយធំជាមួយ IP ថេរមិនកំណត់ទំហំទិន្នន័យ
Proxy Dedicated IPv4 និង Static ISP ភ្លាមៗនៅទូទាំង 7 ប្រទេស។
ទិញ Proxy សម្រាប់ Selenium