mitmdump+python的使用(代碼篇)


mitmproxy+python代碼篇

一、上個推文我們介紹了mitmdump的簡單操作,下面我們開始學習,mitmdump配合python腳本的使用。第一點先講日志輸出。請看圖片



       先導入ctx模塊:from mitmproxy import ctx。這個模塊主要用於日志的輸出。日志輸出可以控制顏色

  ctx.log.info      # 日志輸出顏色為白色
  ctx.log.warn     # 日志輸出顏色為黃色
  ctx.log.error     # 日志輸出顏色為紅色

  我們運行腳本看看效果

       我們可以看到地址、請求方式、請求體都是白色的。頭部信息是黃色的。URL是紅色的。這邊只是做一個簡單的演示,顏色可以自己修改。

       我們看到整段代碼有兩個模塊。這兩個模塊在Python中稱之為函數,也可以叫做方法。def request(flow): 在這里面request是函數名,你可以自己設置,但是我們在寫mitmdump相關腳本的時候為了更好的辨認,所有我們統一把請求部分的代碼命名成request,把響應部分的代碼命名為response。括號里(flow)是一個參數。當我們運行mitmdump的時候,每次請求會通過flow傳入我們寫的函數。這時候我們就可以看到結果啦!

二、學會了日志輸出,會發現我們可以拿到好多數據,我們可以把這些數據存儲下來進行更多的操作。下面鵬鵬給大家講講如何對抓取的數據進行保存。大家看代碼:

       這邊鵬鵬想把抓取到的內容保存到JSON文件里所以這里需要導入一個JSON的包,這段代碼需要注意的一個地方就是,在運行這段代碼之前一定要新建兩個空的JSON文件用來保存請求內容和響應內容。

        這時候我們去cmd界面運行后,所抓取的內容都會存入這兩個文件夾中。

        代碼詳解:request代碼中的d只是一個變量名,可以隨便設置。d是一個字典。字典里存着URL,請求方式和請求體。這里可以隨着自己的需要去增減。增加辦法是“key”:“value”;因為json文件只能存入字符串格式。所以我們需要用json_d = json.dumps(d)來把他轉為字符串格式;fp也是一個變量名,你可以隨便更改,它主要功能是打開這個路徑下的JSON文件,以追加(a+)的方式寫入,編碼為UTF-8。;fp.write(json_d + '\n')的意思是把抓取到的內容寫入json文件,\n是換行的意思,寫入一條換一行。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM