विकल्प 1: आईपी श्वेतसूची (सर्वर के लिए सिफारिश की गई)#
सर्वर के वास्तविक आउटबाउंड पब्लिक IPv4 को एक्सेस में जमा करें और प्रशासक सक्रियण के लिए प्रतीक्षा करें। NAT या एक वीपीएन प्रवेश द्वार द्वारा देखे गए पते को बदल सकता है। पासवर्ड-फ्री एक्सेस केवल निर्दिष्ट सेवा के लिए प्रवेश की पुष्टि के बाद ही काम करता है। देश और सत्र विकल्पों को अलग से पुष्टि करें; एक स्रोत-आईपी अनुमतिदाता उपयोगकर्ता नाम पैरामीटर नहीं भेजता है। श्वेतसूची
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
opts = Options()
opts.add_argument("--proxy-server=http://res.proxy-cyber.com:9000")
opts.add_argument("--headless=new")
driver = webdriver.Chrome(options=opts)
driver.get("https://api.ipify.org")
print(driver.find_element("tag name", "body").text)
driver.quit()विकल्प 2: WebDriver BiDi प्रमाणीकरण #
उदाहरण से सेलेनियम के रखरखाव वेब ड्राइवर बिडि एपीआई का उपयोग करता है, जो सक्षम bidi और network.add auth handler के साथ करता है। एक नौकरी में इसका उपयोग करने से पहले स्थापित ब्राउज़र और ड्राइवर के साथ HTTP प्रॉक्सी चुनौती का परीक्षण करें। हैंडलर एक होस्ट तक सीमित नहीं है, इसलिए असंबंधित प्रमाणीकरण संकेत के बिना एक पृथक ब्राउज़र सत्र का उपयोग करें। यदि आपके संस्करण संयोजन में प्रॉक्सी प्रमाणीकरण का समर्थन नहीं किया जाता है, तो एक सक्रिय आईपी स्वीकार्य सूची का उपयोग करें।
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.enable_bidi = True
options.add_argument("--proxy-server=" + os.environ["PROXY_SERVER"])
with webdriver.Chrome(options=options) as driver:
handler = driver.network.add_auth_handler(
os.environ["PROXY_USER"], os.environ["PROXY_PASSWORD"]
)
try:
driver.get("https://api.ipify.org")
print(driver.find_element("tag name", "body").text)
finally:
driver.network.remove_auth_handler(handler)फ़ायरफ़ॉक्स#
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
opts = Options()
opts.set_preference("network.proxy.type", 1)
opts.set_preference("network.proxy.http", "res.proxy-cyber.com")
opts.set_preference("network.proxy.http_port", 9000)
opts.set_preference("network.proxy.ssl", "res.proxy-cyber.com")
opts.set_preference("network.proxy.ssl_port", 9000)
opts.set_preference("media.peerconnection.enabled", False) # no WebRTC leak
driver = webdriver.Firefox(options=opts) # whitelisted server, no promptव्यावहारिक नियम#
- प्रत्येक स्वतंत्र वर्कफ़्लो के लिए एक अलग सत्र पहचानकर्ता का उपयोग करें, जहां निर्दिष्ट गेटवे इसका समर्थन करता है। अपने कनेक्शन विवरण में अनुमति अवधि और स्थान मापदंडों की पुष्टि करें। अनुरोध अवधि से पहले एक आवासीय उपकरण डिस्कनेक्ट कर सकता है; एक चिपचिपा सत्र दिनों के लिए उसी आईपी की गारंटी नहीं है। एक निश्चित पते के लिए, एक समर्पित स्थिर उत्पाद की तुलना करें।
- उपयोग
--headless=newक्रोम में; पुराने हेडलेस मोड में एक विशिष्ट फिंगरप्रिंट है। - अलग सत्र पहचानकर्ता रूटिंग वरीयताओं को अलग करते हैं, ब्राउज़र के कुकीज़ या एप्लिकेशन स्टेट नहीं। श्रमिकों की एक छोटी संख्या के साथ शुरू करें, त्रुटियों और यातायात को मापें, और धीरे-धीरे आपके ऑर्डर और गंतव्य के लिए पुष्टि की गई सीमाओं के भीतर बढ़ें। एक संकीर्ण शहर या वाहक चयन उपलब्ध क्षमता को कम कर सकता है।
सवाल पूछो#
क्यों क्रोम सेलेनियम के साथ एक प्रॉक्सी लॉगिन प्रॉम्प्ट दिखाता है?
एक निश्चित सर्वर के लिए एक सक्रिय स्रोत-आईपी अनुमति सूची का उपयोग करें, या स्थापित ब्राउज़र के साथ सेलेनियम के वर्तमान वेबड्राइवर बिडिओ प्रमाणीकरण हैंडलर का परीक्षण करें। एक नए एकीकरण के लिए संग्रहीत सेलेनियम वायर इंस्टॉलेशन पर भरोसा न करें।