Python3 Web-Crawler: Selen Chrom konfigurieren Sie die Proxy-Version der Methode Python

Dieser Artikel stellt Selen Chrom - Version der Python - Proxy - Konfigurationsmethoden, Xiao Bian fühle mich sehr gut, jetzt für jedermann zu teilen, sondern auch eine Referenz sein. Folgen Sie Xiaobian zu sehen , es kommen zusammen
Umwelt: windows 7 + Python 3.5.2 + Selen 3.4.2 + Chrome - Treiber 2.29 + Chrome 58.0.3029.110 (64-Bit)

Selenium offizielle Firefox-Proxy-Konfiguration nicht wirksam, hat nicht die entsprechende Konfiguration für Chrome Selenium Behörden sehen nicht informieren, wie zu konfigurieren, aber es ist effektiv auf zwei Arten:

  1. Verbindung keine Benutzername Passwort-Authentifizierung Proxy
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument('--proxy-server=http://ip:port') 
driver = webdriver.Chrome(chrome_options=chromeOptions)
  1. Verbindungs-Benutzernamen und das Passwort
from selenium import webdriverdef create_proxyauth_extension(proxy_host, proxy_port,
                proxy_username, proxy_password,
                scheme='http', plugin_path=None):
  """Proxy Auth Extension
 
  args:
    proxy_host (str): domain or ip address, ie proxy.domain.com
    proxy_port (int): port
    proxy_username (str): auth username
    proxy_password (str): auth password
  kwargs:
    scheme (str): proxy scheme, default http
    plugin_path (str): absolute path of the extension    
 
  return str -> plugin_path
  """
  import string
  import zipfile
 
  if plugin_path is None:
    plugin_path = 'd:/webdriver/vimm_chrome_proxyauth_plugin.zip'
 
  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 = string.Template(
  """
  var config = {
      mode: "fixed_servers",
      rules: {
       singleProxy: {
        scheme: "${scheme}",
        host: "${host}",
        port: parseInt(${port})
       },
       bypassList: ["foobar.com"]
      }
     };
 
  chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});
 
  function callbackFn(details) {
    return {
      authCredentials: {
        username: "${username}",
        password: "${password}"
      }
    };
  }
 
  chrome.webRequest.onAuthRequired.addListener(
        callbackFn,
        {urls: ["<all_urls>"]},
        ['blocking']
  );
  """
  ).substitute(
    host=proxy_host,
    port=proxy_port,
    username=proxy_username,
    password=proxy_password,
    scheme=scheme,
  )
  with zipfile.ZipFile(plugin_path, 'w') as zp:
    zp.writestr("manifest.json", manifest_json)
    zp.writestr("background.js", background_js)
 
  return plugin_path
 
proxyauth_plugin_path = create_proxyauth_extension(
  proxy_host="proxy.crawlera.com",
  proxy_port=8010,
  proxy_username="fea687a8b2d448d5a5925ef1dca2ebe9",
  proxy_password=""
)
 
 
co = webdriver.ChromeOptions()
co.add_argument("--start-maximized")
co.add_extension(proxyauth_plugin_path)
 
 
driver = webdriver.Chrome(chrome_options=co)
driver.get(<a href="http://www.amazon.com/" rel="external nofollow">http://www.amazon.com/</a>)

Ich schreibe Sie, für jeden etwas dabei ein sehr breites Python Lern Sammeln von Ressourcen zu empfehlen, klicken Sie eingeben , gibt einen leitenden Programmierer vor dem Lernen zu Erfahrungen auszutauschen ist, Studie stellt fest, gibt es eine Chance von Business - Erfahrung, und für jeden sorgfältig eine Python - Null zu organisieren die Grundlage des tatsächlichen Projektdaten auf dem neuesten Stand der Technik zu Ihnen täglich python, die Aussichten, das Erlernen einer Nachricht von kleinen Details verlassen

Veröffentlicht 46 Originalarbeiten · erntete Lob 30 · Ansichten 70000 +

Ich denke du magst

Origin blog.csdn.net/haoxun09/article/details/104828272
Empfohlen
Rangfolge