Cet article présente la version chrome Sélénium des méthodes de configuration proxy Python, Xiao Bian se sentent très bon, maintenant tout le monde à part, mais aussi d'être une référence. Suivez Xiaobian de le voir se réunissent
environnement: Windows 7 + Python + Selenium 3.5.2 3.4.2 + Chrome + 2,29 Pilote Chrome 58.0.3029.110 (64 bits)
officiel Sélénium à la configuration du proxy Firefox ne prend pas effet, n'a pas vu la configuration appropriée pour les autorités Chrome Sélénium n'a pas informé comment configurer, mais il est efficace de deux façons:
- Connexion sans authentification par mot de passe de nom d'utilisateur proxy
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument('--proxy-server=http://ip:port')
driver = webdriver.Chrome(chrome_options=chromeOptions)
- nom d'utilisateur et mot de passe de connexion
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(<a href="http://www.amazon.com/" rel="external nofollow">http://www.amazon.com/</a>)
Je vous écris, pour tout le monde de recommander un très large rassemblement de ressources d'apprentissage python, cliquez pour entrer , il y a un programmeur senior avant d' apprendre à partager des expériences, des notes d'étude, il y a une chance d'expérience en affaires, et pour tout le monde d'organiser soigneusement un zéro python la base des données réelles du projet, python quotidien pour vous sur les dernières technologies, les perspectives, apprendre à laisser un message de petits détails