Python3 crawler Web: Sélénium chrome configure la version proxy de la méthode Python

Cet article présente la version chrome Sélénium des méthodes de configuration proxy Python, Xiao Bian se sentent très bon, maintenant tout le monde à part, mais aussi d'être une référence. Suivez Xiaobian de le voir se réunissent
environnement: Windows 7 + Python + Selenium 3.5.2 3.4.2 + Chrome + 2,29 Pilote Chrome 58.0.3029.110 (64 bits)

officiel Sélénium à la configuration du proxy Firefox ne prend pas effet, n'a pas vu la configuration appropriée pour les autorités Chrome Sélénium n'a pas informé comment configurer, mais il est efficace de deux façons:

  1. Connexion sans authentification par mot de passe de nom d'utilisateur proxy
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument('--proxy-server=http://ip:port') 
driver = webdriver.Chrome(chrome_options=chromeOptions)
  1. nom d'utilisateur et mot de passe de connexion
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>)

Je vous écris, pour tout le monde de recommander un très large rassemblement de ressources d'apprentissage python, cliquez pour entrer , il y a un programmeur senior avant d' apprendre à partager des expériences, des notes d'étude, il y a une chance d'expérience en affaires, et pour tout le monde d'organiser soigneusement un zéro python la base des données réelles du projet, python quotidien pour vous sur les dernières technologies, les perspectives, apprendre à laisser un message de petits détails

Publié 46 articles originaux · louange gagné 30 · vues 70000 +

Je suppose que tu aimes

Origine blog.csdn.net/haoxun09/article/details/104828272
conseillé
Classement