用Python编写脚本使IE实现代理上网的教程
厂里上个网需要设置代理服务器,切换各种环境『包括但不仅限于开发环境、QA、预上线、验收、生产环境、压力测试、Demo……』都需要给浏览器设置不同的代理服务器。
虽然俺有神器Firefox+Change Host+HostAdmin+Proxy Selector的组合来轻松切换Host,切换浏览器代理,但是…凡是就怕『但是』。
但是碰到一些IE才有的bug时候不得不换浏览器啊!!还要开虚拟机进去搞IE6、IE8、360、搜狗这些奇葩浏览器啊!!!
有同事建议搞个bat脚本来做这些,但没人肯动手……而且bat能不能实现先不说,重点是咱不熟啊。
搞个C#写个winform或者console控制台还需要.NET framework不是,虚拟机装个.NET framework4.0又要很多时间『而且不同的snapshot都要装一遍…』
最最重要的,好久不写文章了不是,咱不想在博客里写C#相关的东西不是。所以,操刀Python写几行代码和厂里兄弟们显摆一下『人生苦短,我用Python』的好处。
具体实现步骤如下:
安装pywin32、WMI支持。具体下载地址Google一下,因为我的是32位python2.7系列,下载到的文件名分别为(pywin32-218.win32-py2.7.exe、WMI-1.4.7.win32.exe)
开搞。
首先,我们查资料知道,IE浏览器的代理内容在注册表中『HKEYCURRENTUSERSoftwareMicrosoftWindowsCurrentVersionInternet Settings』这里存着,所以我们理论上只要修改这里相关的键值就可以切换IE代理。
所以,第一个函数就是修改注册表键值:
因此段代码中用到了pywin32的的东西,所以在文件最开头需要做import win32api, win32con,引入相关的class
修改系统注册表的函数其实就这么几行…当然,因为我厂必须通过代理服务器上网,所以修改系统注册表的键值类型我只用到了REG_SZ这一种,实际其他情况还会有REG_DWORD啊等等类型。
然后咱需要一个配置文件,来保存各种场景『QA啊开发环境啊』的不同的配置信息,这时候我使用的配置文件为ini格式,用Python自带的ConfigParser就可以解析此种文件格式。
没有采用以往我最熟悉的XML或者json纯粹为了装x,xml和json总觉着是web上用的东西,ini看起来比较像一个.exe比较常用的配置文件格式。
也因为以前没用过ini格式的配置文件,这次权当又学会一种Python的玩法而已。
所以读取ini配置文件的代码为:
因此段代码中用到了pywin32的的东西,所以在文件最开头需要做import win32api, win32con,引入相关的class
修改系统注册表的函数其实就这么几行…当然,因为我厂必须通过代理服务器上网,所以修改系统注册表的键值类型我只用到了REG_SZ这一种,实际其他情况还会有REG_DWORD啊等等类型。
然后咱需要一个配置文件,来保存各种场景『QA啊开发环境啊』的不同的配置信息,这时候我使用的配置文件为ini格式,用Python自带的ConfigParser就可以解析此种文件格式。
没有采用以往我最熟悉的XML或者json纯粹为了装x,xml和json总觉着是web上用的东西,ini看起来比较像一个.exe比较常用的配置文件格式。
也因为以前没用过ini格式的配置文件,这次权当又学会一种Python的玩法而已。
所以读取ini配置文件的代码为:
这样的方式来获取『场景』这个参数,这一段代码就会变成:
既然已经读取到配置文件中的ProxyServer和ProxyOverride这俩东东了,写入到注册表理论上就能完成咱们的修改IE代理配置的大业了:
前一句为啥是『理论上』呢,因为注册表内容虽然已经修改了,但实际上IE浏览器并没有生效,让IE浏览器生效需要关闭重新打开。
这时候就用到前边安装的一个叫做WMI的东东,import wmi ctypes,然后:
当然,这段代码是有一点点问题的,只关闭了IE没有重新打开……是因为俺偷懒了,俺可以接受手动打开IE…
综上所述:
完整的代码为:
#coding=utf-8相关内容
-
fireworks修改图片名称的操作步骤
fireworks修改图片名称的操作步骤,名称,修改图片,操作,选择,...
-
ChatGPT怎么用?ChatGPT使用教程图解
ChatGPT怎么用?ChatGPT使用教程图解,账户,点击,输入,使用教程,...
-
IE浏览器不让修改首页的小技巧
IE浏览器不让修改首页的小技巧,修改,快捷方式,参数,小技巧,浏...
-
玩转浏览器IE7的5个顶级使用技巧
玩转浏览器IE7的5个顶级使用技巧,标签页,选择,点击,浏览器,打...
-
兼容IE、FireFox、Chrome等浏览器的xml处理函数
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码,浏览器...
-
解决ExtJS在chrome或火狐中正常显示在ie中不显
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼...
-
js代码判断浏览器种类IE、FF、Opera、Safari、c
js代码判断浏览器种类IE、FF、Opera、Safari、chrome及版本,...
-
怎么用ie浏览器打开网页(IE浏览器常用快捷键)
怎么用ie浏览器打开网页(IE浏览器常用快捷键),标签,快捷键,标...
-
IE浏览器单独写CSS样式的几种方法
IE浏览器单独写CSS样式的几种方法,浏览器,条件,维护,复制,注...
-
浏览器兼容之旅第一站:如何在页面中创建IE条件
浏览器兼容之旅第一站:如何在页面中创建IE条件注释,条件,注释...
-
Internet Explorer 11 浏览器介绍:别叫我IE
Internet Explorer 11 浏览器介绍:别叫我IE,浏览器,版本,特征,...
-
教你通过命令行完美完全的卸载IE浏览器(IE9、IE
教你通过命令行完美完全的卸载IE浏览器(IE9、IE10、IE11),卸...
-
把Windows 系统中的IE8浏览器降为IE6的方法
把Windows 系统中的IE8浏览器降为IE6的方法,方法,版本号,版本...
-
IE浏览器常见错误解析
IE浏览器常见错误解析,右键,删除,运行,浏览器,常见错误,解析...
-
CSS HACK收集:关于IE6/FF/google等浏览器hack的
CSS HACK收集:关于IE6/FF/google等浏览器hack的方法详细,浏览...