欢迎光临散文网 会员登陆 & 注册

【原创】selenium配置代理(账密、隧道)

2023-02-27 21:47 作者:拉灯的小手  | 我要投稿

本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!

selenium配置代理(账密、隧道)

环境

  • win10

  • Python3.9

  • selenium3.141.0

selenium 配置demo

def create_proxy_auth_extension(proxy_host, proxy_port,
                               proxy_username, proxy_password,
                               scheme='http', plugin_path=None):
   if plugin_path is None:
       plugin_path = r'./proxy_auth_plugin.zip'


   manifest_json = """
       {
           "version": "1.0.0",
           "manifest_version": 2,
           "name": "Abuyun 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


proxy_auth_plugin_path = create_proxy_auth_extension(
   proxy_host=proxyHost,
   proxy_port=proxyPort,
   proxy_username=proxyUser,
   proxy_password=proxyPass)

option = webdriver.ChromeOptions()
option.add_extension(proxy_auth_plugin_path)

效果

二级标题

效果

请添加图片描述

资源下载

https://download.csdn.net/download/qq_38154948/87511999

本文仅供学习交流使用,如侵立删!


【原创】selenium配置代理(账密、隧道)的评论 (共 条)

分享到微博请遵守国家法律