Ir al contenido principal
Todas las coleccionesConfiguración, integración y comandos APIGuías de configuración
Selenium con autenticación de nombre de usuario y contraseña (clave API)
Selenium con autenticación de nombre de usuario y contraseña (clave API)

Cómo configurar tus proxies de Proxyrack en Selenium utilizando tu nombre de usuario y contraseña (clave API).

Evan avatar
Escrito por Evan
Actualizado hace más de una semana

Selenium no te permite usar autenticación con nombre de usuario y contraseña (clave API) por defecto. Puedes usar la solución alternativa a continuación para hacer esto en lugar de la lista blanca de IP.

import osimport zipfilefrom selenium import webdriverPROXY_HOST = 'premium.residential.proxyrack.net'  # esto es para proxies residenciales Premium. puedes sustituir el DNS del servicio que estás usandoPROXY_PORT = 9000 # puerto (usa "10000" para un puerto persistente)PROXY_USER = 'user' # tu nombre de usuarioPROXY_PASS = 'password' # tu contraseña (clave 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')  # cualquier url que quieras rastrear
¿Ha quedado contestada tu pregunta?