Задать вопрос
@maryaTurova

Как удалить прокси из браузера?

У меня не большое приложение по созданию и запуску профилей chrome с помощью Selenium на Python.
spoiler
6479f802bfade263207164.png

Для работы с прокси использую расширение и подключаю с помощью аргумента "--load-extension":
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
var config = {
            mode: "fixed_servers",
            rules: {
                singleProxy: {
                    scheme: "http",
                    host: "%s",
                    port: %s
                },
                bypassList: %s
            }
    };
    chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});
    function callbackFn(details) {
        return {
            authCredentials: {
                username: "%s",
                password: "%s"
            }
        };
    }
    chrome.webRequest.onAuthRequired.addListener(
                callbackFn,
                {urls: ["<all_urls>"]},
                ['blocking']
    );

Все работает отлично! НО.....Если я запускаю браузер без прокси , который ранее запускал с прокси, то требует аутентификации как будто прокси установлен. Хотя даже в расширениях оно не установлено.Как так?
spoiler
6479f74fd06a2505361375.png

Подскажите как исправить ситуацию?
Или как явно отключить использование прокси при старте браузера.
PS: аргумент "--no-proxy-server" не помогает.
  • Вопрос задан
  • 210 просмотров
Подписаться 2 Сложный Комментировать
Решения вопроса 1
zkrvndm
@zkrvndm
Архитектор решений
Чтобы удалить прокси методом замены необходимо из background.js выполнить:
await chrome.proxy.settings.set(
	{
		value: {
			mode: 'pac_script',
			pacScript: {
				data: 'function FindProxyForURL(url, host) { return "DIRECT"; }'
			}
		},
		scope: 'regular'
	}
);

Это установит PAC-скрипт который будет все запросы направлять напрямую. С гарантией сбросит прошлый прокси.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@maryaTurova Автор вопроса
Вообщем решил переписание кода в background.js режим в "direct", и так же установкой расширения. Просто думал может быть есть более правильное решение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы