1. from selenium import webdriver
  2. import string
  3. import zipfile
  4. # 打包Google代理插件
  5. def create_proxyauth_extension(proxy_host, proxy_port, proxy_username, proxy_password, scheme='http', plugin_path=None):
  6. if plugin_path is None:
  7. # 插件地址
  8. plugin_path = 'C:/Program Files (x86)/Google/Chrome/Application/vimm_chrome_proxyauth_plugin.zip'
  9.  
  10. manifest_json = """
  11. {
  12. "version": "1.0.0",
  13. "manifest_version": 2,
  14. "name": "Chrome Proxy",
  15. "permissions": [
  16. "proxy",
  17. "tabs",
  18. "unlimitedStorage",
  19. "storage",
  20. "<all_urls>",
  21. "webRequest",
  22. "webRequestBlocking"
  23. ],
  24. "background": {
  25. "scripts": ["background.js"]
  26. },
  27. "minimum_chrome_version":"22.0.0"
  28. }
  29. """
  30.  
  31. background_js = string.Template(
  32. """
  33. var config = {
  34. mode: "fixed_servers",
  35. rules: {
  36. singleProxy: {
  37. scheme: "${scheme}",
  38. host: "${host}",
  39. port: parseInt(${port})
  40. },
  41. bypassList: ["foobar.com"]
  42. }
  43. };
  44.  
  45. chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});
  46.  
  47. function callbackFn(details) {
  48. return {
  49. authCredentials: {
  50. username: "${username}",
  51. password: "${password}"
  52. }
  53. };
  54. }
  55.  
  56. chrome.webRequest.onAuthRequired.addListener(
  57. callbackFn,
  58. {urls: ["<all_urls>"]},
  59. ['blocking']
  60. );
  61. """
  62. ).substitute(
  63. host=proxy_host,
  64. port=proxy_port,
  65. username=proxy_username,
  66. password=proxy_password,
  67. scheme=scheme,
  68. )
  69. with zipfile.ZipFile(plugin_path, 'w') as zp:
  70. zp.writestr("manifest.json", manifest_json)
  71. zp.writestr("background.js", background_js)
  72.  
  73. return plugin_path
  74.  
  75. # 填写主机地址,端口,账号,密码
  76. proxyauth_plugin_path = create_proxyauth_extension(
  77. proxy_host="****",
  78. proxy_port=808,
  79. proxy_username="****",
  80. proxy_password="****"
  81. )
  1. # 测试
  2. co = webdriver.ChromeOptions()
  3. co.add_argument("--start-maximized")
  4. co.add_extension('C:/Program Files (x86)/Google/Chrome/Application/vimm_chrome_proxyauth_plugin.zip')
  5. driver = webdriver.Chrome(chrome_options=co)
  6. driver.get("http://www.google.cn/")

python3 - selenium 添加有账号密码的代理的更多相关文章

  1. python3 mqtt 添加用户名以及密码

    import paho.mqtt.client as mqtt client = mqtt.Client(client_id, transport='tcp') client.username_pw_ ...

  2. openvpn部署账号密码登录

    1.开启服务器端路由转发功能: 修改配置文件/etc/sysctl.conf中 net.ipv4.ip_forward = 0 改为 net.ipv4.ip_forward = 1 [root@nod ...

  3. PHP CURL 账号密码 添加授权Authorization头Header

    <?phpfunction http_request_xml($url,$data = null,$arr_header = null){ $curl = curl_init(); curl_s ...

  4. Linux下添加FTP账号和服务器、增加密码和用户,更改FTP目录

    1. 启动VSFTP服务器 A:cenos下运行:yum  install  vsftpd B. 登录Linux主机后,运行命令:”service vsftpd start” C. 要让FTP每次开机 ...

  5. chromedriver 代理设置(账号密码)

    在使用selenium时遇到的一个问题 如何为chromedriver设置有密码的代理 在借鉴了stackoverflow上的答案 background.js var config = { mode: ...

  6. selenium(python)登录时账号密码错误提示语

    selenium(python)登录时账号密码错误提示语的获取 可以用text

  7. 使用selenium进行密码破解(绕过账号密码JS加密)

    经常碰到网站,账号密码通过js加密后进行提交.通过burp拦截抓到的账号密码是加密后的,所以无法通过burp instruder进行破解.只能模拟浏览器填写表单并点击登录按钮进行破解.于是想到了自动化 ...

  8. 【转】Linux下添加FTP账号和服务器、增加密码和用户,更改FTP目录

    转自:http://blog.csdn.net/cloudday/article/details/8640234   1. 启动VSFTP服务器 A:cenos下运行:yum  install  vs ...

  9. python3 selenium模块Chrome设置代理ip的实现

    python3 selenium模块Chrome设置代理ip的实现 selenium模块Chrome设置代理ip的实现代码: from selenium import webdriver chrome ...

随机推荐

  1. 最小割&网络流应用

    重要链接 基础部分链接 : 二分图 & 网络流初步 zzz大佬博客链接 : 网络流学习笔记 重点内容:最小割二元关系新解(lyd's ppt) 题目:网络流相关题目 lyd神犇课件链接 : 网 ...

  2. idea2020安装教程

    2019最新版IDEA亲测可用, 2020最新版IDEA亲测可用, 重要的事说三遍: 如果自己破解不成功建议加群咨询群主:422167709   成功的也可以进群交流 激活码1 N757JE0KCT- ...

  3. APP自动化 -- 获取driver

    一.appium设置 1.打开appium 2.设置 appium服务器:点击  高级设置 3.启动 appium 服务器 二.查看  .apk  安装包的“包名”和“活动入口名” 1.先复制本地  ...

  4. 使用 Azure Blob Stoage 实现一个静态文件服务器

    什么是Azure Blob Stoage Azure Blob Stoage 是微软Azure的对象存储服务.国内的云一般叫OSS,是一种用来存储非结构化数据的服务,比如音频,视频,图片,文本等等.用 ...

  5. Centos 7下编译安装PHP7.2(与Nginx搭配的安装方式)

    一.下载源码包 百度云网盘下载地址:https://pan.baidu.com/s/1li4oD3qjvFyIaEZQt2NVRg 提取码:4yde 二.安装php依赖组件 yum -y instal ...

  6. Python之自定义函数

    函数 1.定义函数 在Python中定义一个函数要使用def语句,一次写出函数名.括号.括号中的的参数和冒号,然后在缩进块中编写函数体,函数的返回值用return返回.如下所示: def 函数名(参数 ...

  7. PHP array_fill_keys() 函数

    ------------恢复内容开始------------ 实例 用给定的指定键名的键值填充数组: <?php$keys=array("a","b",& ...

  8. UOJ #310 黎明前的巧克力 FWT dp

    LINK:黎明前的巧克力 我发现 很多难的FWT的题 都和方程有关. 上次那个西行寺无余涅槃 也是各种解方程...(不过这个题至今还未理解. 考虑dp 容易想到f[i][j][k]表示 第一个人得到巧 ...

  9. JDK8的Optional用法

    参考资料:https://www.baeldung.com/java-optional https://mp.weixin.qq.com/s/P2kb4fswb4MHfb0Vut_kZg 1. 描述 ...

  10. Elasticsearch权威指南(中文版)

    Elasticsearch权威指南(中文版) 下载地址: https://pan.baidu.com/s/1bUGJmwS2Gp0B32xUyXxCIw 扫码下面二维码关注公众号回复100010 获取 ...