from selenium import webdriver from selenium.webdriver.chrome.options import Options import zipfile 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" } """ #配置 host和port #authCredentials 不知道怎麼作,沒配置也能用 background_js = """ var config = { mode: "fixed_servers", rules: { singleProxy: { scheme: "http", host: "39.137.69.6", port: parseInt(8080) }, bypassList: ["foobar.com"] } }; chrome.proxy.settings.set({value: config, scope: "regular"}, function() {}); function callbackFn(details) { return { authCredentials: { username: "XXXXXXXXX", password: "XXXXXXXXX" } }; } chrome.webRequest.onAuthRequired.addListener( callbackFn, {urls: ["<all_urls>"]}, ['blocking'] ); """ pluginfile = 'proxy_auth_plugin.zip' with zipfile.ZipFile(pluginfile, 'w') as zp: zp.writestr("manifest.json", manifest_json) zp.writestr("background.js", background_js) co = Options() co.add_argument("--start-maximized") co.add_extension(pluginfile) driver = webdriver.Chrome(chrome_options=co) driver.get("http://ip138.com/")
<a href='https://cn-proxy.com/'>ip代理地址網站</a>web
<a href='http://ip138.com/'>展現ip代理是否設置成功</a>chrome
<a href='https://stackoverflow.com/questions/29983106/how-can-i-set-proxy-with-authentication-in-selenium-chrome-web-driver-using-pyth#answer-30953780'>stack overflow原文</a>json