Python selenium chromedirver (без заголовка) использует прокси (IPV6) с аутентификацией - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть прокси-серверы IPV6, для работы которых требуются имя пользователя и пароль. Можно ли использовать эти прокси-серверы в ChromeDriver (без заголовка) с именем пользователя и паролем.

прокси в формате - ip_address: имя пользователя порта: пароль

, если нет, то есть ли способ изменить системный адрес ipv6, используя эти прокси, поэтому ChromeDriver по умолчанию принимает системный IP-адрес.

1 Ответ

0 голосов
/ 08 декабря 2018

вы можете создать простое расширение для установки прокси и обработки авторизации

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 edit 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)
...