Python Selenium chromedirver(less header)使用具有身份验证的代理(IPV6)

时间:2018-11-30 10:14:37

标签: python selenium proxy selenium-chromedriver proxies

我有IPV6代理,需要用户名和密码才能工作, 有什么办法可以在ChromeDriver(Headerless)中使用用户名和密码使用这些代理。

格式的代理- ip_address:端口用户名:密码

如果没有,我有什么办法可以使用这些代理更改系统ipv6地址,因此ChromeDriver默认情况下会使用系统IP地址。

2 个答案:

答案 0 :(得分:5)

您可以创建简单的扩展名来设置代理并处理授权

manifest.json

{
    "manifest_version": 2,
    "name": "Chrome Proxy Auth",
    "version": "1.0.0",
    "permissions": [
        "proxy",
        "tabs",
        "unlimitedStorage",
        "storage",
        "<all_urls>",
        "webRequest",
        "webRequestBlocking"
    ],
    "background": {
        "scripts": ["background.js"]
    }
}

background.js 编辑host, port, username, password

var config = {
  mode: "fixed_servers",
  rules: {
    singleProxy: {
      host: "XXX.XXX.XXX.XXX",
      port: parseInt(8888)
    }
  }
};

chrome.proxy.settings.set({
  value: config,
  scope: "regular"
}, function() {});

function callbackFunc(details) {
  return {
    authCredentials: {
      username: "............",
      password: "............"
    }
  };
}

chrome.webRequest.onAuthRequired.addListener(
  callbackFunc, {
    urls: ["<all_urls>"]
  },
  ['blocking']
);

将两个文件都添加到.zip存档中,然后在您的python脚本中

options = Options()
options.add_extension('/path/top/extension.zip')

driver = webdriver.Chrome(options=options)

答案 1 :(得分:0)

带扩展的隔离不适用于无头模式。 引发错误:

ngAfterViewInit(){
    this.dataSource.paginator = this.paginator;
    this.dataSource.sort = this.sort;
    this.dataSource.data = this.personal;
    console.log(this.personal);
    console.log(this.dataSource);
}