python3 Webクローラー:セレン、クロムのconfigure Pythonのメソッドのプロキシバージョン

Pythonのプロキシ設定方法のセレンクロームバージョンが導入この記事では、小扁は現在共有に皆のための、非常に良い感じが、また、基準となります。フォローのXiaobianは、それが一緒に来て見るため
のWindows 7 + Pythonの3.5.2 +セレン:環境 3.4.2 +クロームドライバ2.29 +クローム58.0.3029.110(64ビット)

Firefoxのプロキシ設定にセレンの関係者は設定方法を通知しませんでしたクロムセレン当局のための適切な設定を見ていない、有効になりませんが、それは2つの方法で効果的です。

  1. 接続なしのユーザー名・パスワードの認証プロキシ
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument('--proxy-server=http://ip:port') 
driver = webdriver.Chrome(chrome_options=chromeOptions)
  1. Connectionユーザ名とパスワード
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>)

誰もが、リソースの収集を学ぶ非常に広いのpythonをお勧めし、ために私は、あなたへの書き込み入力する]をクリックし、共有の経験に学ぶ前に、上級プログラマがあり、研究ノート、ビジネス経験の可能性がある、と皆のために注意深くのpythonゼロを整理します細部のメッセージを残すことを学んで、実際のプロジェクトデータ、最新の技術上のあなたに、毎日のpython、見通しの根拠

公開された46元の記事 ウォン称賛30 ビュー70000 +

おすすめ

転載: blog.csdn.net/haoxun09/article/details/104828272
おすすめ