Wie kann ich Proxy mit Authentifizierung im Selen-Chrom-Web-Treiber mit Python setzen

Ich habe folgendes Skript, um eine Webseite mit Python Selen Chrome Treiber zu besuchen.

from selenium import webdriver USERNAME = 'usename' PASSWORD = 'pass' proxies = ["xxx.xxx.xxx.xxx"] proxy_tpl ='{0}:{1}' proxy = proxy_tpl.format(proxies[0],'xx') chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--proxy-server=%s' % proxy) chrome = webdriver.Chrome(chrome_options=chrome_options) chrome.get("http://{0}:{1}@whatismyipaddress.com".format(USERNAME, PASSWORD)) driver.close() 

Chrome noch fragen Benutzername und Passwort, wenn ich versuche, Skript laufen. Wie kann ich Proxy-Server aus dem Skript authentifizieren?

  • Wie verstecke man das Chromedriver Konsolenfenster?
  • Verbinden Sie mit einer bereits laufenden Instanz von Chrom mit Selen in Python
  • Python: Deaktivieren Sie Bilder in Selen Google ChromeDriver
  • Verwenden von Erweiterungen mit Selen (Python)
  • Nur ein Python-Programm läuft (wie Firefox)?
  • Selen wird keine neue URL in einem neuen Tab öffnen (Python & Chrome)
  • Reverse Repräsentative Funktion in Python
  • Force repr () um einfache Anführungszeichen zu verwenden
  • Warum erscheinen die Backslashs zweimal?
  • Rekursiver Verweis auf eine Liste in sich selbst
  • Ausgabedifferenz zwischen ipython und python
  • Str () vs repr () Funktionen in python 2.7.5 [duplizieren]
  • One Solution collect form web for “Wie kann ich Proxy mit Authentifizierung im Selen-Chrom-Web-Treiber mit Python setzen”

    Inspiriert von dieser diese Lösung in PHP , schrieb ich ein Äquivalent in Python:

     from selenium import webdriver from selenium.webdriver.chrome.options import Options import zipfile 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: "XXX.XXX.XXX.XXX", port: parseInt(XXXX) }, bypassList: ["foobar.com"] } }; chrome.proxy.settings.set({value: config, scope: "regular"}, function() {}); function callbackFn(details) { return { authCredentials: { username: "XXXXXXXXX", password: "XXXXXXXXX" } }; } chrome.webRequest.onAuthRequired.addListener( callbackFn, {urls: ["<all_urls>"]}, ['blocking'] ); """ pluginfile = 'proxy_auth_plugin.zip' with zipfile.ZipFile(pluginfile, 'w') as zp: zp.writestr("manifest.json", manifest_json) zp.writestr("background.js", background_js) co = Options() co.add_argument("--start-maximized") co.add_extension(pluginfile) driver = webdriver.Chrome("path/to/chromedriver", chrome_options=co) driver.get("http://www.google.com.br") 

    In background_js string ersetzen Sie den XXX durch Ihre Informationen.

    Python ist die beste Programmiersprache der Welt.