zoukankan      html  css  js  c++  java
  • Selenium 设置代理chrome

    1.1. 连接无用户名密码认证的代理

    from selenium import webdriver
    
    chromeOptions = webdriver.ChromeOptions()
    chromeOptions.add_argument('--proxy-server=http://localhost:8888')
    driver = webdriver.Chrome(chrome_options=chromeOptions)
    driver.get("https://www.cnblogs.com/Rita-LJ/p/8079094.html")
    

     2. 有用户名和密码的连接

    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("http://www.amazon.com/")
    

      以上直接通过python代码生成chrome所需的zip插件文件,IP端口用户名密码写上自己的,原文出处:

     https://github.com/RobinDev/Selenium-Chrome-HTTP-Private-Proxy

     

  • 相关阅读:
    贝赛尔曲线实现填充不规则图形,并且随手指运动
    当view为wrap_conten时获取一个view的具体宽高
    Scrapped or attached views may not be recycled
    installation failed with message INSTALL_FAILED_INSUFFICIENT_STORG
    RecycleView设置顶部分割线(记录一个坑)
    Java list.remove( )方法需要注意的地方
    JAVA forname classnotfoundexception 错误
    调用android的getColor()方法出现 java.lang.NoSuchMethodError: android.content.res.Resources.getColor
    JSONObject.parseObject
    设置抓包工具Fiddler的host
  • 原文地址:https://www.cnblogs.com/SunshineKimi/p/10589381.html
Copyright © 2011-2022 走看看