Selenium आपको डिफ़ॉल्ट रूप से उपयोगकर्ता नाम और पासवर्ड (API कुंजी) प्रमाणीकरण का उपयोग करने की अनुमति नहीं देता है। आप IP श्वेतसूचीकरण के बजाय इसे करने के लिए नीचे दिए गए वर्कअराउंड का उपयोग कर सकते हैं।
import osimport zipfilefrom selenium import webdriverPROXY_HOST = 'premium.residential.proxyrack.net' # यह प्रीमियम रेजिडेंशियल प्रॉक्सी के लिए है। आप जिस सेवा का उपयोग कर रहे हैं उसके DNS को बदल सकते हैंPROXY_PORT = 9000 # पोर्ट (एक स्थायी पोर्ट के लिए "10000" का उपयोग करें)PROXY_USER = 'user' # आपका उपयोगकर्ता नामPROXY_PASS = 'password' # आपका पासवर्ड (API कुंजी)manifest_json = """{ "version": "1.0.0", "manifest_version": 2, "name": "Chrome Proxy", "permissions": [ "proxy", "tabs", "unlimitedStorage", "storage", "<all_urls>", "webRequest", "webRequestBlocking" ], "background": { "scripts": ["background.js"] }, "minimum_chrome_version":"22.0.0"}"""background_js = """var config = { mode: "fixed_servers", rules: { singleProxy: { scheme: "http", host: "%s", port: parseInt(%s) }, bypassList: ["localhost"] } };chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});function callbackFn(details) { return { authCredentials: { username: "%s", password: "%s" } };}chrome.webRequest.onAuthRequired.addListener( callbackFn, {urls: ["<all_urls>"]}, ['blocking']);""" % (PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PASS)def get_chromedriver(use_proxy=False, user_agent=None): path = os.path.dirname(os.path.abspath(__file__)) chrome_options = webdriver.ChromeOptions() if use_proxy: pluginfile = 'proxy_auth_plugin.zip' with zipfile.ZipFile(pluginfile, 'w') as zp: zp.writestr("manifest.json", manifest_json) zp.writestr("background.js", background_js) chrome_options.add_extension(pluginfile) if user_agent: chrome_options.add_argument('--user-agent=%s' % user_agent) driver = webdriver.Chrome( os.path.join(path, 'chromedriver'), chrome_options=chrome_options) return driverdef main(): driver = get_chromedriver(use_proxy=True) driver.get('http://api.ipify.org/?format=json') # कोई भी URL जिसे आप क्रॉल करना चाहते हैं