วิธีใช้ Proxies กับ Selenium
Chrome ใน Selenium ไม่รับ username และ password ใน flag --proxy-server วิธีที่ง่ายที่สุดคือใช้ selenium-wire ซึ่งจัดการการเข้าสู่ระบบให้คุณ
ขั้นตอน
- ติดตั้ง selenium-wire ด้วย pip install selenium-wire
- ส่ง URL proxy พร้อม username และ password ใน seleniumwire_options
- เริ่ม driver และเปิดหน้าปลายทาง
- ใช้ session id เพื่อคง IP เดียวตลอดการทดสอบ
ตัวอย่างโค้ด
from seleniumwire import webdriver
proxy = "http://USERNAME-cc-ca:PASSWORD@gw.gbproxies.cc:10000"
driver = webdriver.Chrome(seleniumwire_options={
"proxy": {"http": proxy, "https": proxy, "no_proxy": "localhost,127.0.0.1"}
})
driver.get("https://api.ipify.org")
print(driver.find_element("tag name", "body").text)
driver.quit()แทนที่ USERNAME และ PASSWORD ด้วยข้อมูลเข้าสู่ระบบ proxy จากหน้า Proxies ของคอนโซล พอร์ต 10000 คือ residential HTTP; ดูพอร์ตของทุกผลิตภัณฑ์ด้านล่าง
เคล็ดลับ
- ปิดรูปภาพด้วย Chrome preferences เพื่อประหยัด GB
- รันหนึ่ง driver ต่อ sticky session
คำถามทั่วไป
ฉันสามารถใช้ Selenium แบบธรรมดาโดยไม่ต้องมีแพ็คเกจเพิ่มเติมได้หรือไม่?
Chrome ต้องการ extension หรือ selenium-wire สำหรับการเข้าสู่ระบบ proxy; Firefox สามารถอ่านข้อมูลรับรองจาก profile ได้