久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

用Python編寫腳本使IE實現(xiàn)代理上網(wǎng)的教程

瀏覽:49日期:2022-08-07 18:40:38

廠里上個網(wǎng)需要設(shè)置代理服務(wù)器,切換各種環(huán)境『包括但不僅限于開發(fā)環(huán)境、QA、預(yù)上線、驗收、生產(chǎn)環(huán)境、壓力測試、Demo……』都需要給瀏覽器設(shè)置不同的代理服務(wù)器。

雖然俺有神器Firefox+Change Host+HostAdmin+Proxy Selector的組合來輕松切換Host,切換瀏覽器代理,但是…凡是就怕『但是』。

但是碰到一些IE才有的bug時候不得不換瀏覽器啊!!還要開虛擬機進(jìn)去搞IE6、IE8、360、搜狗這些奇葩瀏覽器啊!!!

有同事建議搞個bat腳本來做這些,但沒人肯動手……而且bat能不能實現(xiàn)先不說,重點是咱不熟啊。

搞個C#寫個winform或者console控制臺還需要.NET framework不是,虛擬機裝個.NET framework4.0又要很多時間『而且不同的snapshot都要裝一遍…』

最最重要的,好久不寫文章了不是,咱不想在博客里寫C#相關(guān)的東西不是。所以,操刀Python寫幾行代碼和廠里兄弟們顯擺一下『人生苦短,我用Python』的好處。

具體實現(xiàn)步驟如下:

安裝pywin32、WMI支持。具體下載地址Google一下,因為我的是32位python2.7系列,下載到的文件名分別為(pywin32-218.win32-py2.7.exe、WMI-1.4.7.win32.exe)

開搞。

首先,我們查資料知道,IE瀏覽器的代理內(nèi)容在注冊表中『HKEYCURRENTUSERSoftwareMicrosoftWindowsCurrentVersionInternet Settings』這里存著,所以我們理論上只要修改這里相關(guān)的鍵值就可以切換IE代理。

所以,第一個函數(shù)就是修改注冊表鍵值:

用Python編寫腳本使IE實現(xiàn)代理上網(wǎng)的教程

因此段代碼中用到了pywin32的的東西,所以在文件最開頭需要做import win32api, win32con,引入相關(guān)的class

修改系統(tǒng)注冊表的函數(shù)其實就這么幾行…當(dāng)然,因為我廠必須通過代理服務(wù)器上網(wǎng),所以修改系統(tǒng)注冊表的鍵值類型我只用到了REG_SZ這一種,實際其他情況還會有REG_DWORD啊等等類型。

然后咱需要一個配置文件,來保存各種場景『QA啊開發(fā)環(huán)境啊』的不同的配置信息,這時候我使用的配置文件為ini格式,用Python自帶的ConfigParser就可以解析此種文件格式。

沒有采用以往我最熟悉的XML或者json純粹為了裝x,xml和json總覺著是web上用的東西,ini看起來比較像一個.exe比較常用的配置文件格式。

也因為以前沒用過ini格式的配置文件,這次權(quán)當(dāng)又學(xué)會一種Python的玩法而已。

所以讀取ini配置文件的代碼為:

用Python編寫腳本使IE實現(xiàn)代理上網(wǎng)的教程

因此段代碼中用到了pywin32的的東西,所以在文件最開頭需要做import win32api, win32con,引入相關(guān)的class

修改系統(tǒng)注冊表的函數(shù)其實就這么幾行…當(dāng)然,因為我廠必須通過代理服務(wù)器上網(wǎng),所以修改系統(tǒng)注冊表的鍵值類型我只用到了REG_SZ這一種,實際其他情況還會有REG_DWORD啊等等類型。

然后咱需要一個配置文件,來保存各種場景『QA啊開發(fā)環(huán)境啊』的不同的配置信息,這時候我使用的配置文件為ini格式,用Python自帶的ConfigParser就可以解析此種文件格式。

沒有采用以往我最熟悉的XML或者json純粹為了裝x,xml和json總覺著是web上用的東西,ini看起來比較像一個.exe比較常用的配置文件格式。

也因為以前沒用過ini格式的配置文件,這次權(quán)當(dāng)又學(xué)會一種Python的玩法而已。

所以讀取ini配置文件的代碼為:

用Python編寫腳本使IE實現(xiàn)代理上網(wǎng)的教程

這樣的方式來獲取『場景』這個參數(shù),這一段代碼就會變成:

用Python編寫腳本使IE實現(xiàn)代理上網(wǎng)的教程

既然已經(jīng)讀取到配置文件中的ProxyServer和ProxyOverride這倆東東了,寫入到注冊表理論上就能完成咱們的修改IE代理配置的大業(yè)了:

用Python編寫腳本使IE實現(xiàn)代理上網(wǎng)的教程

前一句為啥是『理論上』呢,因為注冊表內(nèi)容雖然已經(jīng)修改了,但實際上IE瀏覽器并沒有生效,讓IE瀏覽器生效需要關(guān)閉重新打開。

這時候就用到前邊安裝的一個叫做WMI的東東,import wmi ctypes,然后:

用Python編寫腳本使IE實現(xiàn)代理上網(wǎng)的教程

當(dāng)然,這段代碼是有一點點問題的,只關(guān)閉了IE沒有重新打開……是因為俺偷懶了,俺可以接受手動打開IE…

綜上所述:

完整的代碼為:

#coding=utf-8
標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 抚顺市| 青浦区| 绥江县| 呈贡县| 黑河市| 张家界市| 华阴市| 泸定县| 天全县| 翁源县| 淮滨县| 尚志市| 静海县| 麟游县| 新安县| 英吉沙县| 营口市| 合肥市| 乌鲁木齐市| 蒙自县| 岱山县| 德保县| 勃利县| 英山县| 杂多县| 霍林郭勒市| 盈江县| 金昌市| 乐亭县| 阿拉善左旗| 静海县| 山丹县| 油尖旺区| 涿鹿县| 涟水县| 麻栗坡县| 镇平县| 乌恰县| 锦屏县| 濉溪县| 夹江县|