python浏览器多窗口下实现不同的代理IP

一、背景/应用介绍

因一个测试场景的要求,需要做个ip代理功能;并且要可以做到开启多个窗口下还能指定IP(根据账号指定IP不变);

构思:

二、直接先看最后的成果:

起了三个窗口,每个浏览器都是独立的代理IP,且各浏览器的存储的一些信息也是独立的(如cookies)。确保了不会让数据有污染情况,导致浏览器storage共用情况;

三、介绍整个构思设计过程

3.1、流程前置步骤:先取conf.txt配置文件信息(后续流程需要多处用到):

3.2、流程第一个步骤:通过requests判断引用代理ip是否有效、以及IP核验正确性

1)、步骤1-获取对应账号下的指定IP相关的信息:因为是届时是需要多个代理IP,故用文档统一管理(如下图),根据账号固定绑定一个;

备注:对于代理IP哪里来,其实网上可以搜到一些可以直接免费用的IP,但不太稳定;我这里是通过淘宝购买了,也贼便宜;

备注:此处加了个执行记录(相当于log作用),把每次执行的都保存下来;引用的是第三方Logger库,需要可以度娘搜搜就有;

2)、步骤2-引用request库调用httpbin.org核验IP有效性、正确性

3.3、打包浏览器代理插件:让每个窗口独立指定IP,另外在ui层面检查一遍(引用selenium)

3.4、为方便win执行,触发命令转换成bat文件(另外也可以用Bat To Exe Converter转成exe就更方便一点):

*生成exe文件后,并命名成对应账户名,然后双击即可使用啦~~~~

3.5、自动检测及修复:python依赖包的以及谷歌驱动下载

1)、步骤1:对于python依赖包,相对用了最简单去处理了。通过import判断是否安装对应库;如没有就pip所需库的下载(我这里是引用了阿里云镜像源,相对比较稳定比较快):