欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 3.5實(shí)現(xiàn)檢測路由器流量并寫入txt的方法實(shí)例

 更新時(shí)間:2017年12月17日 15:52:11   作者:會(huì)講段子的挨踢狗  
這篇文章主要給大家介紹了關(guān)于利用python 3.5實(shí)現(xiàn)檢測路由器流量并寫入txt的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起看看吧。

前言

本文主要給大家介紹了關(guān)于利用python 3.5檢測路由器流量并寫入txt的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹。

環(huán)境交代:win10+python3.6

代碼非常簡單,

  • 模擬登陸,沒有
  • 網(wǎng)頁標(biāo)簽過濾,沒有
  • 多線程,也沒有
  • 文本處理,只有涉及到字符串截取
  • 本地文本寫入,有

這么低級(jí)的代碼是因?yàn)檫@個(gè)路由器頁面非常垃圾,用不到~~~,不過這樣也適合初學(xué)者觀看,當(dāng)然了,后續(xù)會(huì)嘗試添加更多功能

首先我們對自己的需求要進(jìn)行分析,新手嘛,先把復(fù)雜的東西簡單化,模塊化,整理出思路,再一步步的去實(shí)現(xiàn),最后整合。

1、獲得數(shù)據(jù)

  • 網(wǎng)頁編碼,編碼沒有處理好會(huì)報(bào)錯(cuò),涉及到一些函數(shù)
  • 編碼轉(zhuǎn)換,read()方法獲取到的非字符串類型,要預(yù)先進(jìn)行處理

2、處理數(shù)據(jù)

  • 方法有很多,正則,字符串截取,等等不一一介紹,適合的才是最好的,我覺得正則是很強(qiáng)大的,但是也是相當(dāng)反人類的

3、保存數(shù)據(jù)

  • 注意win下路徑和linux下路徑寫法不同
  • 寫入的編碼類型需要進(jìn)行處理

重點(diǎn)講一講我遇到的坑

一般來講右鍵查看頁面編碼,如圖所示,因?yàn)樵趪馐欠浅F婀值木幋a

當(dāng)時(shí)我就蒙蔽了,這是什么鬼~

這個(gè)時(shí)候我們需要用到chardet庫來判斷編碼類型,拿百度舉例,自行百度python第三方庫如何安裝,這里不做闡述

import chardet
import urllib.request
html = urllib.request.urlopen('http://www.baidu.com/').read()
print (chardet.detect(html))

得到的結(jié)果如下:

C:\python\python.exe D:/python/test/2.py
{'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}

Process finished with exit code 0

1.取得字符串

import urllib.request
import os
from bs4 import BeautifulSoup
import time
def getHtml(url):
 html = urllib.request.urlopen(url).read()
 return html
#獲取字符串,因?yàn)槲以趪猓酚善鱨ow到爆,編碼格式也蛋疼了我很久
html = getHtml("http://192.168.0.254/pub/fbx_info.txt")
#將read()獲取的是bytes編碼轉(zhuǎn)化成str
html = html.decode("ISO-8859-1")

因?yàn)槭菤W洲網(wǎng)站,獲取的卻是一個(gè) 【ISO-8859-1】的網(wǎng)頁編碼。

由于這里我們用read()方法讀取,獲取到的是bytes類型,此時(shí)需要轉(zhuǎn)換成str類型的,才可以進(jìn)行下一步的處理,如果不處理就會(huì)有下列錯(cuò)誤

TypeError: a bytes-like object is required, not 'str'

這里可以使用decode()方法處理一下

html = html.decode("ISO-8859-1")

使用type()方法檢測下編碼

print(type(html))

反饋

<class 'str'>

2.處理字符串

#操作字符串
html = html.split('WAN')[1].split('Ethernet')[0]
time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
#因?yàn)槭褂糜浭卤?,在記事本中換行只認(rèn)\r\n
str = time+html+"\r\n"

這里我使用的是split()方法,使用方法呢,推薦大家學(xué)會(huì)查手冊,這里也不詳細(xì)再解釋了。

我通過split()方法截取到了自己需要的字符串,然后用time()函數(shù)獲取當(dāng)前本地時(shí)間,然后用+連接符把當(dāng)前本地時(shí)間和處理后的字符串連接起來,再在末尾接上換行符rn,因?yàn)閼械街挥糜浭卤荆瑩Q行符這里只算一個(gè)小坑

3.寫入txt

# 保存文件為txt,win環(huán)境路徑
outfile = open("C:\\Users\\sw\\Desktop\\route.txt","a+",encoding="utf-8",newline='\n')
outfile.write(str)
outfile.close()
print("文件已保存到本地")

關(guān)于open函數(shù),每一個(gè)參數(shù),此篇博文講的非常清楚非常詳細(xì),感謝博主的整理,大家可以看看,建議收藏

http://www.dbjr.com.cn/article/58002.htm

要強(qiáng)調(diào)的有2個(gè)參數(shù)

encoding和newline,因?yàn)橛玫谋容^少,然后很多文章并不會(huì)提到

有人可能會(huì)說,哇,真的懶

沒錯(cuò),我就是懶,而且再說了,寫了還沒人家寫的好,那我何必誤人子弟。

下面貼上全部代碼

import urllib.request
import os
from bs4 import BeautifulSoup
import time
def getHtml(url):
 html = urllib.request.urlopen(url).read()
 return html

#獲取字符串,因?yàn)槲以趪?,路由器low到爆,編碼格式也蛋疼了我很久
html = getHtml("http://192.168.0.254/pub/fbx_info.txt")
#將read()獲取的是bytes編碼轉(zhuǎn)化成str
html = html.decode("ISO-8859-1")
#再次檢測編碼
#print(type(html))
#操作字符串
html = html.split('WAN')[1].split('Ethernet')[0]
time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
#因?yàn)槭褂糜浭卤?,在記事本中換行只認(rèn)\r\n
str = time+html+"\r\n"
# 保存文件為txt,win環(huán)境路徑
#print(type(str))
outfile = open("C:\\Users\\sw\\Desktop\\route.txt","a+",encoding="utf-8",newline='\n')
outfile.write(str)
outfile.close()
print("文件已保存到本地")

本來當(dāng)初的想法是每秒獲取一次流量,寫入txt,再讀txt,通過數(shù)據(jù)來繪圖

但是有事暫時(shí)擱下了,只是win計(jì)劃任務(wù)定時(shí)運(yùn)行,勉強(qiáng)湊活用下日后再學(xué)習(xí)補(bǔ)充

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Python 十大特性

    Python 十大特性

    這篇文章主要給大家分享的是Python十大特性,Python 編程語言是世界上發(fā)展最快的編程語言。這一高級(jí)通用編程語言提供了廣泛的實(shí)際應(yīng)用,并且是一種非常流行的認(rèn)證,下面我們就來看看它都有哪些特性吧
    2022-01-01
  • Python中xlsx文件轉(zhuǎn)置操作詳解(行轉(zhuǎn)列和列轉(zhuǎn)行)

    Python中xlsx文件轉(zhuǎn)置操作詳解(行轉(zhuǎn)列和列轉(zhuǎn)行)

    很多時(shí)候我們處理的Excel表格并不是我們想要的樣子,需要將表格的形式進(jìn)行相應(yīng)轉(zhuǎn)換后進(jìn)行數(shù)據(jù)分析操作,下面這篇文章主要給大家介紹了關(guān)于Python中xlsx文件轉(zhuǎn)置操作(行轉(zhuǎn)列和列轉(zhuǎn)行)的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Django模板Templates使用方法詳解

    Django模板Templates使用方法詳解

    這篇文章主要介紹了Django模板Templates使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 基于Python如何使用AIML搭建聊天機(jī)器人

    基于Python如何使用AIML搭建聊天機(jī)器人

    AIML,全名為Artificial Intelligence Markup Language(人工智能標(biāo)記語言),是一種創(chuàng)建自然語言軟件代理的XML語言,是由Richard Wallace和世界各地的自由軟件社區(qū)在1995年至2002年發(fā)明的,通過本文給大家介紹基于Python如何使用AIML搭建聊天機(jī)器人,需要的朋友一起學(xué)習(xí)
    2016-01-01
  • 基于python SMTP實(shí)現(xiàn)自動(dòng)發(fā)送郵件教程解析

    基于python SMTP實(shí)現(xiàn)自動(dòng)發(fā)送郵件教程解析

    這篇文章主要介紹了基于python實(shí)現(xiàn)自動(dòng)發(fā)送郵件教程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python代碼庫之Tuple如何append添加元素問題

    Python代碼庫之Tuple如何append添加元素問題

    這篇文章主要介紹了Python代碼庫之Tuple如何append添加元素問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Python 生成VOC格式的標(biāo)簽實(shí)例

    Python 生成VOC格式的標(biāo)簽實(shí)例

    這篇文章主要介紹了Python 生成VOC格式的標(biāo)簽實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python中urllib+urllib2+cookielib模塊編寫爬蟲實(shí)戰(zhàn)

    Python中urllib+urllib2+cookielib模塊編寫爬蟲實(shí)戰(zhàn)

    這篇文章主要介紹了Python的urllib+urllib2+cookielib模塊編寫爬蟲實(shí)戰(zhàn),文中給出了抓取豆瓣同城和登陸圖書館查詢圖書歸還的爬取例子,需要的朋友可以參考下
    2016-01-01
  • 實(shí)現(xiàn)?Python?腳本生成命令行

    實(shí)現(xiàn)?Python?腳本生成命令行

    這篇文章主要介紹了實(shí)現(xiàn)?Python?腳本生成命令行,文章通過定義一個(gè)?scrape?方法展開詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • 查看已安裝tensorflow版本的方法示例

    查看已安裝tensorflow版本的方法示例

    這篇文章主要介紹了查看已安裝tensorflow版本的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04

最新評論