selenium两种代理方式(方式二支持账号密码验证)

这篇具有很好参考价值的文章主要介绍了selenium两种代理方式(方式二支持账号密码验证)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

驱动下载地址

https://registry.npmmirror.com/binary.html?path=chromedriver/

代理方式

以下方式均实机测试过。

方式一

无需验证,只需填写代理IP和端口号

from selenium import webdriver

chrome_driver = "F:\PycharmProjects\chromedriver_win32\chromedriver.exe"

option = webdriver.ChromeOptions()
option.add_argument('--proxy-server=http://代理IP:端口号')
driver = webdriver.Chrome(executable_path=chrome_driver, chrome_options=option)
driver.get("https://proxy.mimvp.com/ip.php/")
driver.close()

方式二

通过生成插件并加载通过代理验证,需要填写代理IP、端口号、验证账号和密码,该方式缺点是不支持后台静默运行(headless)文章来源地址https://www.toymoban.com/news/detail-506253.html

from selenium import webdriver
import zipfile
import string

chrome_driver = "F:\PycharmProjects\chromedriver_win32\chromedriver.exe"


# 生成代理插件,返回插件路径
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'{}_{}@h.test.com.zip'.format(proxy_username, proxy_password)

        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: ${port}
                },
                bypassList: ["127.0.0.1"]
                }
            };

            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


if __name__ == '__main__':
    # 插件路径
    proxy_auth_plugin_path = create_proxy_auth_extension(
        proxy_host="代理IP",
        proxy_port="代理端口",
        proxy_username="验证账号",
        proxy_password="验证密码")
    option = webdriver.ChromeOptions()
    option.add_experimental_option("excludeSwitches", ["enable-logging"])
    option.page_load_strategy = "eager"
    option.add_argument('ignore-certificate-errors')
    option.add_extension(proxy_auth_plugin_path)
    # option.add_argument('headless') # 该模式不支持后台静默运行
    driver = webdriver.Chrome(executable_path=chrome_driver, chrome_options=option)
    driver.get("https://proxy.mimvp.com/ip.php/") # 查看是否代理的ip
    driver.close()

到了这里,关于selenium两种代理方式(方式二支持账号密码验证)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaGui实现登录界面编写+实现账号密码验证登录+文件存储

    目录 标题一: 登录界面编写 标题二;登录界面之注册(一个类)编写  标题三:登录界面之登录编写  在登录界面这里,我们先编写一个登录界面出来,这只是一个界面,还没有实现验证账号密码和注册的功能,但得有这个界面做媒介 。 界面如下:   1.登陆界面代码在这里

    2024年02月08日
    浏览(42)
  • Python使用selenium自动打开网页、输入账号密码并登录

    此处示例使用 谷歌Chrome浏览器 ,打开指定网页,输入账号密码,并登录; 代码思路如下: ① 加载Chrome浏览器 驱动程序 (下载地址)         具体下载方式可以参考:使用selenium自动打开谷歌浏览器 ② 打开url 链接(此处建议sleep等待一下,避免网速或内存不良时,导致网

    2024年02月11日
    浏览(69)
  • git拉取提交代码进行身份验证-输入账号密码以及配置SSH公钥

    git初次拉取代码或者提交代码时,需要进行身份验证。验证有两种方式:1、账号密码验证;2、SSH公钥验证。 本文章以gitee为例 1.首先找到电脑本地项目文件夹,在地址栏中输入 cmd 回车,打开命令行窗口。 2.输入 git clone 要拉取的项目地址,回车,一会弹出输入账号密码的对

    2024年02月12日
    浏览(36)
  • sqlmap的两种挂代理方式

    文章目录 前言 一、第一种方式直接挂代理 二、第二种方式间接挂代理 为什么要挂代理呢: sqlmap原理和暴力破解类似如果速度过快则会很容易被封ip,所以挂代理是避免这种情况的发生,即使发生也可以切换其他ip。 一、第一种方式直接挂代理  可在-u之后直接输入--proxy 

    2024年02月12日
    浏览(37)
  • SpringSecurity设置登录账号密码的三种方式

    一、SpringBoot整合SpringSecurity: 1.新建SpringBoot工程,引入SpringSecurity依赖 2.编写一个测试Controller  3.修改访问端口(默认8080) 4.启动SpringBoot工程,访问http://localhost:8001/test/hello  如上自动跳转到登录页面,输入账号user,密码在控制台输出,如下所示  5.查看是否登录成功(如下

    2024年02月01日
    浏览(33)
  • HttpURLConnection设置代理的两种方式

    前言:最近写一个东西需要用到HttpURLConnection,但是写的过程中遇到了问题,想通过fiddler抓包,查看具体情况,但是却发现fiddler竟然抓不到java程序的包。查询之后发现使用代理即可解决这个问题,两种方式使用代理。 第一种:直接设置代理 第二种:1.5之后,可以通过Proxy类

    2024年02月15日
    浏览(42)
  • 没有外网的麒麟系统上搭建GitLab服务并且无需客户端账号密码验证

    要在没有外网的麒麟系统上搭建GitLab服务并且无需客户端账号密码验证,可以按照以下步骤进行操作: 安装必要的依赖包和软件 安装GitLab的依赖工具 下载并安装GitLab 配置GitLab 打开GitLab配置文件并做出如下修改: 将 external_url 配置为: 去掉 nginx 配置: 添加GitLab监听所有本

    2024年02月09日
    浏览(32)
  • 自动化测试Lab①—selenium模拟输入账号密码登录QQ空间

    目录 前言:selenium介绍 实验过程:业务分析 实验过程:编写自动化测试代码 Selenium是一个广泛使用的开源自动化测试工具,主要用于Web应用程序的功能测试和自动化。它提供了一系列的API和工具,允许开发人员使用多种编程语言(如Java、Python、C#等)来编写自动化脚本。

    2024年02月20日
    浏览(33)
  • 密码加密——加盐算法(两种方式)

    密码安全是一件很重要的事情,所以一定要谨慎对待 常见的主要是3种方式 明文 MD5加密 加盐算法 首先明文肯定是不可取的,在数据库中明文存储密码风险实在是太大了 简单来说,使用MD5就是将一串字符串通过某特定的算法来将其变成另一种形式,这样子就在外观上起到了加

    2023年04月12日
    浏览(27)
  • Elasticsearch 8.6.0 安装,及初始化乱码,运行后无法访问,需要账号密码验证身份的解决方法

    1.安装(官网):Download Elasticsearch | Elastic      选择系统版本就好,我是windows,下载解压到要安装的盘符。下图为目录结构 2.安装成功之后,先不急着初始化。(先解决初始化乱码问题,不解决也可使用,请忽略)         进入config目录找到jvm.options文件, 添加 -Dfile.enco

    2023年04月08日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包