Python Selenium 设置带账号密码的socks5代理,启动浏览器

selenium添加带有账密的socks5代理

在这里插入图片描述我们都知道在使用selenium开发爬虫的时候不可避免的会使用socks5高匿名代理。一般情况下我们使用方法如下(开发语言为python):

from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("proxy-server=socks5://127.0.0.1:1080")
driver = webdriver.Chrome(   "./chromedriver", chrome_options=chrome_options)

我们的代理是:socks5://127.0.0.1:1080,当然这是本地自己搭的socks5代理,不需要账号密码就可以使用,但是如果我们搞了一台服务器在上面搭建了socks5代理服务,你如果不设置账号密码,那岂不是会变成人人都可以用的开放式socks5代理服务,你问我为什么?因为总有一些进行全网扫描的投机分子会发现你的服务器的开放代理。

但是你又要问了,chrome不支持socks5代理加认证,这不能怪我啊。

确实chrome原生不支持socks5代理认证,所以小码哥在这里介绍一种方式,抛砖引玉,有其他合适的方式可以交流。

咱们开门见山,其实很简单,如果服务器的socks5代理需要验证的话,我们不直接使用服务器的socks5代理,我们中间加一层转发,让转发这个中间件支持socks5验证不就行了,而且我们的程序还要能够控制这个中间件。那么现在我们的流程是这样的:
在这里插入图片描述思路捋清楚了,那么接下来的问题就是咱们如何实现socks5代理的转发中间件。当然我们没有必要亲自去重新实现socks5协议,市面上已经有对应的实现,我们只需要有发现的眼睛。


一、安装Pproxy三方库

安装pproxy

pip install pproxy

二、使用方法

1、在cmd命令行输入:

找到python的安装路径,输入cmd启动命令行:
在这里插入图片描述
在这里插入图片描述

把ip,port改成socks5代理的,填好账号密码,这个方法是监听8080端口,也可以设置别的端口,只要不冲突

pproxy -l socks5://127.0.0.1:8080 -r socks5://ip:prot#账号:密码 -vv

以以上命令很简单 -l代表监听listen,-r代表转发relay,那么意思很明确,我们监听本地的8080端口提供无验证的socks5服务,将收到的数据包转发给ip:port所指的需要验证的socks5服务。

成功会看到下图的样子

在这里插入图片描述

2、给selenium添加代理

option.add_argument('--proxy-server=socks5://127.0.0.1:8080')

实现思路

我们可以用python以启动子进程的方式,在selenium启动chrome之前启动pproxy作为转发中间件,然后把启动的chrome的代理设置为本地的socks5转发中间件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/89236.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【探索SpringCloud】服务发现-Nacos使用

前言 在聊服务注册中心时,便提到了Nacos。这次便来认识一下。当然,这自然没有官方介绍那般详尽,权当是学习了解Nacos原理的一个过程吧。 Nacos简介 Nacos,全名:dynamic Naming And Configuration Service. 而这个名…

PHP智能人才招聘网站mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP智能人才招聘网站 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 下载地址 https://download.csdn.net/download/qq_41221322/88199392 视频演示 PH…

【MAC】 M2 brew安装 docker 运行失败 解决

MAC 安装 brew install --cask docker 之后一直显示docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. 网上看了一些文章 发现 这个不适用于M2 所以要从官网上下载 docker 安装成功

多线程与并发编程面试题总结

多线程与并发编程 多线程 线程和进程的区别? 从操作系统层面上来讲:进程(process)在计算机里有单独的地址空间,而线程只有单独的堆栈和局部内存空间,线程之间是共享地址空间的,正是由于这个特性,对于同…

产品进行逻辑梳理的三个重点

我们在进行产品方案设计时,需要进行逻辑梳理,这样才能保障产品方案的严谨性,降低后期返工几率。如果我们在接到需求时,直接开始画原型,没有经过逻辑梳理,往往容易造成产品方案纰漏丛生,直接影响…

成集云 | 用友U8采购请购单同步钉钉 | 解决方案

源系统成集云目标系统 方案介绍 用友U8是中国用友集团开发和推出的一款企业级管理软件产品。具有丰富的功能模块,包括财务管理、采购管理、销售管理、库存管理、生产管理、人力资源管理、客户关系管理等,可根据企业的需求选择相应的模块进行集…

【C++入门到精通】C++入门 —— vector (STL)

阅读导航 前言一、vector简介1. 概念2. 特点 二、vector的使用1.vector 构造函数2. vector 空间增长问题⭕resize 和 reserve 函数 3. vector 增删查改⭕operator[] 函数 三、迭代器失效温馨提示 前言 前面我们讲了C语言的基础知识,也了解了一些数据结构&#xff0…

Python爬虫:单线程、多线程、多进程

前言 在使用爬虫爬取数据的时候,当需要爬取的数据量比较大,且急需很快获取到数据的时候,可以考虑将单线程的爬虫写成多线程的爬虫。下面来学习一些它的基础知识和代码编写方法。 一、进程和线程 进程可以理解为是正在运行的程序的实例。进…

优化堆排序(Java 实例代码)

目录 优化堆排序 Java 实例代码 src/runoob/heap/HeapSort.java 文件代码: 优化堆排序 上一节的堆排序,我们开辟了额外的空间进行构造堆和对堆进行排序。这一小节,我们进行优化,使用原地堆排序。 对于一个最大堆,首…

负载均衡搭建

LVS-DR部署 [客户端] node1 192.168.157.148 [lvs] node2 192.168.157.142 [web服务器] node3 192.168.157.145 node4 192.168.157.146(1)[lvs] yum install -y ipvsadm.x86_64 配置LVS负载均衡服务 (1)手动添加LVS转发1&#xff…

SpringBoot复习:(42)WebServerCustomizer的customize方法是在哪里被调用的?

ServletWebServletAutoConfiguration类定义如下: 可以看到其中通过Import注解导入了其内部类BeanPostProcessorRegister。 BeanPostProcessor中定义的registerBeanDefinition方法会被Spring容器调用。 registerBeanDefinitions方法调用了RegistrySyntheticBeanIf…

51.C++继承

今天进行了新的学习关于c继承的知识。 目录 1.继承 基类and派生类 访问控制和继承 单继承 多继承 2.同名隐藏 1.继承 在C中,继承是一种面向对象编程的重要特性,用于构建类之间的层次关系。通过继承,一个类可以从另一个类继承其…

IDEA部署配置Maven项目教程,IDEA配置Tomcat(2019.3.3)(2023.1.3)

我们往往会用到多版本的IDEA进行一个Maven项目配置部署,还有tomcat的配置,这里就有你需要的,有低版本的,也有高版本的,根据自己的情况来进行一个操作 一、前言 当涉及到软件开发和项目管理时,使用一个可靠的…

UNIX 入门

与 UNIX 建立连接启动会话登录命令提示符修改口令退出系统 简单的 UNIX 命令命令格式ls 命令who 命令虚拟终端 tty伪终端 ptywho am i 命令 cal 命令help 命令man 命令 shell 概述shell 命令更换 shell临时更改 shell永久更改 shell 登录过程 与 UNIX 建立连接 启动会话 要启…

虚拟机怎么连接加密狗?USB Sever连接方法

公司想把软件都迁移到虚拟机,但是没法连接加密狗,怎么办? 让USB Sever来连接就行了! 第一步, 根据加密狗的数量, 选一台合适的朝天椒USB Sever, 第二步, 将加密狗全部插在朝天椒U…

FreeRTOS(事件组)

资料来源于硬件家园:资料汇总 - FreeRTOS实时操作系统课程(多任务管理) 目录 一、事件的概念与应用 1、事件的概念 2、事件的应用 二、事件的运作机制 1、FreeRTOS中事件组的句柄 2、FreeRTOS 任务间事件标志组的实现 3、FreeRTOS 中断方式事件标志组的实现…

【多视重建】从Zero-123到One-2-3-45:多视角生成

文章目录 摘要一、引言二、相关工作三、Zero-1-to-33.1.学习如何控制照相机的视角3.2.视角作为条件的扩散3.3三维重构3.4 数据集 四、One-2-3-454.1 Zero123: 视角条件的 2D Diffusion4.2 NeRF优化:将多视图预测提升到三维图像4.3 基于不完美多视图的 神经表面重建*…

实训一 :Linux的启动、关机及登录

实训一 :Linux的启动、关机及登录 2017 年 2 月 22 日 今日公布 实训目标 完成本次实训,将能够: 描述Linux的开机过程。在图形模式和文本模式下登录Linux。关闭和重启Linux 实训准备 一台已安装RHEL6的虚拟计算机,Linux虚拟…

Node+MySQL+Vue2.0+elementUI实现的博客管理系统(一)

前端部分: Vue项目的入口文件main.js: //引入Vue import Vue from vue //引入App import App from ./App.vue //引入VueRouter import VueRouter from vue-router import router from ./router/index import Vuex from vuex import store from ./store //完整引入…

【字节跳动青训营】后端笔记整理-1 | Go语言入门指南:基础语法和常用特性解析

**本人是第六届字节跳动青训营(后端组)的成员。本文由博主本人整理自该营的日常学习实践,首发于稀土掘金:🔗Go语言入门指南:基础语法和常用特性解析 | 青训营 本文主要梳理自第六届字节跳动青训营&#xff…