python获取路由器信息_python 3.5实现检测路由器流量并写入txt的方法实例
前言
本文主要給大家介紹了關于利用python 3.5檢測路由器流量并寫入txt的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹。
環境交代:win10+python3.6
代碼非常簡單,
模擬登陸,沒有
網頁標簽過濾,沒有
多線程,也沒有
文本處理,只有涉及到字符串截取
本地文本寫入,有
這么低級的代碼是因為這個路由器頁面非常垃圾,用不到~~~,不過這樣也適合初學者觀看,當然了,后續會嘗試添加更多功能
首先我們對自己的需求要進行分析,新手嘛,先把復雜的東西簡單化,模塊化,整理出思路,再一步步的去實現,最后整合。
1、獲得數據
網頁編碼,編碼沒有處理好會報錯,涉及到一些函數
編碼轉換,read()方法獲取到的非字符串類型,要預先進行處理
2、處理數據
方法有很多,正則,字符串截取,等等不一一介紹,適合的才是最好的,我覺得正則是很強大的,但是也是相當反人類的
3、保存數據
注意win下路徑和linux下路徑寫法不同
寫入的編碼類型需要進行處理
重點講一講我遇到的坑
一般來講右鍵查看頁面編碼,如圖所示,因為在國外是非常奇怪的編碼
當時我就蒙蔽了,這是什么鬼~
這個時候我們需要用到chardet庫來判斷編碼類型,拿百度舉例,自行百度python第三方庫如何安裝,這里不做闡述
得到的結果如下:
1.取得字符串
因為是歐洲網站,獲取的卻是一個 【ISO-8859-1】的網頁編碼。
由于這里我們用read()方法讀取,獲取到的是bytes類型,此時需要轉換成str類型的,才可以進行下一步的處理,如果不處理就會有下列錯誤
TypeError: a bytes-like object is required, not 'str'
這里可以使用decode()方法處理一下
html = html.decode("ISO-8859-1")
使用type()方法檢測下編碼
print(type(html))
反饋
2.處理字符串
這里我使用的是split()方法,使用方法呢,推薦大家學會查手冊,這里也不詳細再解釋了。
我通過split()方法截取到了自己需要的字符串,然后用time()函數獲取當前本地時間,然后用+連接符把當前本地時間和處理后的字符串連接起來,再在末尾接上換行符rn,因為懶到只用記事本,換行符這里只算一個小坑
3.寫入txt
關于open函數,每一個參數,此篇博文講的非常清楚非常詳細,感謝博主的整理,大家可以看看,建議收藏
要強調的有2個參數
encoding和newline,因為用的比較少,然后很多文章并不會提到
有人可能會說,哇,真的懶
沒錯,我就是懶,而且再說了,寫了還沒人家寫的好,那我何必誤人子弟。
下面貼上全部代碼
本來當初的想法是每秒獲取一次流量,寫入txt,再讀txt,通過數據來繪圖
但是有事暫時擱下了,只是win計劃任務定時運行,勉強湊活用下日后再學習補充
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:https://segmentfault.com/a/1190000012450345
總結
以上是生活随笔為你收集整理的python获取路由器信息_python 3.5实现检测路由器流量并写入txt的方法实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《游戏学习》| 水果忍者HTML5网页版
- 下一篇: gmap 支持python吗_在gmap