芝麻HTTP:設定Selenium+Chrome代理,seleniumchrome

來源:互聯網
上載者:User

芝麻HTTP:設定Selenium+Chrome代理,seleniumchrome

微博登入限制了錯誤次數···加上Cookie大批帳號被封需要從Cookie池中 剔除被封的帳號··· 需要使用代理··· 無賴百度了大半天都是特麼的啥玩意兒???結果換成了 Google手到擒來 分分鐘解決(那麼問題來了?百度除了賣假藥還會幹啥?)

Selenium+Chrome認證代理不能通過options處理。只能換個方法使用擴充解決

原文地址:https://stackoverflow.com/questions/29983106/how-can-i-set-proxy-with-authentication-in-selenium-chrome-web-driver-using-pyth#answer-30953780 (Stack Overflow 這是個好地方啊)

# -*- coding: utf-8 -*-# @Time    : 2017/11/15 9:50# @Author  : 哎喲臥槽# @Site    : # @File    : pubilc.py# @Software: PyCharmimport stringimport zipfiledef create_proxyauth_extension(proxy_host, proxy_port,                               proxy_username, proxy_password,                               scheme='http', plugin_path=None):    """代理認證外掛程式    args:        proxy_host (str): 你的Proxy 位址或者網域名稱(str類型)        proxy_port (int): 代理連接埠號碼(int類型)        proxy_username (str):使用者名稱(字串)        proxy_password (str): 密碼 (字串)    kwargs:        scheme (str): 代理方式 預設http        plugin_path (str): 擴充的絕對路徑    return str -> plugin_path    """        if plugin_path is None:        plugin_path = '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

使用方法:

from selenium import webdriverfrom common.pubilc import create_proxyauth_extensionproxyauth_plugin_path = create_proxyauth_extension(    proxy_host="XXXXX.com",    proxy_port=9020,    proxy_username="XXXXXXX",    proxy_password="XXXXXXX")co = webdriver.ChromeOptions()# co.add_argument("--start-maximized")co.add_extension(proxyauth_plugin_path)driver = webdriver.Chrome(executable_path="C:\chromedriver.exe", chrome_options=co)driver.get("http://ip138.com/")print(driver.page_source)

無認證代理:

options = webdriver.ChromeOptions()options.add_argument('--proxy-server=http://ip:port')  driver = webdriver.Chrome(executable_path="C:\chromedriver.exe", chrome_options=0ptions)driver.get("http://ip138.com/")print(driver.page_source)

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.