python - Python selenium chromedirver(无头)使用代理(IPV6)和身份验证
问题描述
我有需要用户名和密码才能工作的 IPV6 代理,有什么方法可以在 ChromeDriver(无标题)中使用这些代理和用户名和密码。
代理格式 - ip_address:port username:password
如果没有,那么有什么办法可以使用这些代理更改我的系统 ipv6 地址,因此 ChromeDriver 默认采用系统 IP 地址。
解决方案
您可以创建简单的扩展来设置代理和处理授权
清单.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)
推荐阅读
- kubernetes - 我想在 VirtualService 中重写 URI 从 regex 到 regex
- php - 如何在PHP中查找时分和秒的时差
- routing - TYPO3 9.5:RealURL 迁移 - postVarSets - Extbase RouteEnhancer
- javascript - 具有总和(非计数)总数的聚集传单标记:如何获得一致的圆形红色形状和标签格式,如非聚集标记
- scala - 当我的项目中已经添加了依赖项时,为什么必须将 jars 添加到类路径才能运行 jar 文件?
- r - 在ggplot中移动文本的位置
- vba - 无法从 Access VBA 中选择正确的活动文档(单词)
- c# - Unity 3D AI 敌人旋转错误
- javascript - 如何使用 Angular Directive 在 HTML 文本框元素内设置默认值。请参考以下代码
- java - 如何将消息直接发送到停车场队列,防止重新排队并退出程序流程?