Python 3.5实现检测路由器流量并写入txt的方法,具体步骤如下:
步骤一:安装依赖
使用Python API实现路由器检测流量需要使用到requests
、beautifulsoup4
和urllib3
等库,可以通过pip安装。 终端输入以下指令:
pip install requests
pip install beautifulsoup4
pip install urllib3
步骤二:爬取路由器信息
使用Python向路由器地址发送请求,获取路由器页面的html代码,使用beautifulsoup4包解析html文件,获取到当前的流量情况。
import requests
from bs4 import BeautifulSoup
url = 'http://192.168.1.1/' # 路由器地址
html = requests.get(url).content.decode('gbk')
soup = BeautifulSoup(html, 'lxml') # 用beautifulsoup4解析html文件
flow_text = soup.find_all('span', {'class': 'font1_1'}) # 获取到流量情况的元素
flow_rx = flow_text[0].string #当前上传的流量
flow_tx = flow_text[1].string #当前下载的流量
这里需要注意,content.decode('gbk')
是为了将路由器返回的html代码解码,让解析更加方便。
步骤三:将流量情况写入txt文件
使用Python中的文件操作功能,将获取到的流量情况写入到txt文件中。在写入文件之前,我们需要判断文件是否存在,如不存在,创建文件。
import os
if not os.path.exists('flows.txt'): # 判断文件是否存在,如不存在创建文件
with open('flows.txt', 'w') as f:
f.write('日期\t上传流量\t下载流量\n')
else:
with open('flows.txt', 'a') as f:
today = str(datetime.date.today()) # 获取当前日期
f.write('{}\t{}\t{}\n'.format(today, flow_tx, flow_rx)) # 将获取到的流量情况写入文件,使用format进行格式化
以上代码中,我们使用了os.path.exists
函数判断了文件是否存在,如果不存在则使用with open
语句创建flows.txt
文件,并写入表头信息。如果文件已经存在,则使用with open
语句打开文件并以追加的方式写入已经获取的流量信息。
下面是两个示例说明:
示例一:每小时检测一次,将流量情况写入txt文件中
import time
import datetime
while True:
time.sleep(3600) # 暂停3600秒,即每隔一个小时执行一次检测
# 在这里编写上面的代码,将流量情况写入txt文件中
# ......
以上代码中,我们使用了time.sleep
函数使程序暂停3600秒,即1个小时执行一次判断并将结果写入文件中。
示例二:通过flask搭建web应用,输出当前流量情况
from flask import Flask
app = Flask(__name__)
@app.route('/')
def get_flow():
# 在这里编写上面的代码,获取流量情况,并返回给Web页面展示
# ......
return '上传流量:{}<br/>下载流量:{}'.format(flow_tx, flow_rx)
if __name__ == '__main__':
app.run()
以上代码中,我们使用了Flask框架搭建了一个web应用,将当前的流量情况返回到/
的路由中,使用return
语句输出。用户可以通过浏览器访问该路由,即可获取到当前的流量情况。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 3.5实现检测路由器流量并写入txt的方法实例 - Python技术站