【Python】实现从AWR 报表上抓取指定数据
2023-09-14 08:57:29 时间
因为写关于数据库性能周报要查找和计算AWR报表上的一些关键指标的值,每次手工收集数据都花很长时间,写了一个python工具来获取自己想要的值,并做了计算!(现在看来还不太完善,以后会更贴近写周报的需求)
import sys
import urllib
import HTMLParser
import string
sum_Logical=0
sum_Physical_reads=0
sum_Physical_writes=0
sum_Executes=0
sum_Transactions=0
##因为从awr获取的数值为unicode类型的,必须把值转换为数字!
def utof(s1):
s2=s1.strip()
s3=s2.encode(utf-8)
s4=s3.split(,)
length=len(s4)
if length =1 :
t1= string.atof(s4[0])
return t1
elif length == 2:
t1=string.atof(s4[1])+string.atof(s4[0])*1000
return t1
elif length == 3: t1=string.atof(s4[2])+string.atoi(s4[1])*1000+string.atoi(s4[0])*1000000
return t1
else:
return 0
##类是解析html并且从html上获取想要的数据
urltext = []
class CustomParser(HTMLParser.HTMLParser):
selected=(table, h1, font, ul, li, tr, td, a)
def reset(self):
HTMLParser.HTMLParser.reset(self)
self._level_stack = []
def handle_starttag(self, tag, attrs):
if tag in CustomParser.selected:
self._level_stack.append(tag)
def handle_endtag(self, tag):
if self._level_stack \
and tag in CustomParser.selected \
and tag == self._level_stack[-1]:
self._level_stack.pop()
##获取html上出去标签之后的文本数据
def handle_data(self, data):
if "/".join(self._level_stack) in (table/tr/td,table/tr/td/h1/font,table/tr/td/ul/li) and data !=\n:
urltext.append(data)
##对传入的url 进行解析并获取数据
def gethtml(url):
content = unicode(urllib.urlopen(url,params).read(), GB2312)
parser = CustomParser()
parser.feed(content)
parser.close()
Logical=[]
Physical_reads=[]
Physical_writes=[]
Executes=[]
Transactions=[]
###计算想要的数据
def calucate(urltext):
print -----------------------------------------
global sum_Logical
global sum_Physical_reads
global sum_Physical_writes
global sum_Executes
global sum_Transactions
k=0
for item in urltext:
k=k+1
if k 50 :
continue
elif item ==Logical reads: :
sum_Logical +=utof(urltext[k])
print Logical reads: ,urltext[k].strip()
elif item == Physical reads: :
sum_Physical_reads +=utof(urltext[k])
print Physical reads: ,urltext[k].strip()
elif item == Physical writes: :
sum_Physical_writes +=utof(urltext[k])
print Physical writes: ,urltext[k].strip()
elif item ==Executes::
sum_Executes += utof(urltext[k])
print Executes: ,urltext[k].strip()
elif item == Transactions: :
sum_Transactions += utof(urltext[k])
print Transactions: ,urltext[k].strip()
elif k 86:
break
if len(sys.argv) 1:
params = urllib.urlencode({ip: sys.argv[1], action: 2})
else:
params = None
um_Logical=0
sum_Physical_reads=0
sum_Physical_writes=0
sum_Executes=0
sum_Transactions=0
url=[http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111211_10_16119_16120.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111211_17_16126_16127.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111210_17_16102_16103.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111210_10_16095_16096.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111209_17_16078_16079.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111208_17_16054_16055.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111209_10_16071_16072.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111208_10_16047_16048.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111207_17_16030_16031.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111207_10_16023_16024.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111206_17_16006_16007.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111206_10_15999_16000.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111205_17_15982_15983.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111205_10_15975_15976.html
]
for val in url:
print
gethtml(val)
calucate(urltext)
urltext = []
length=len(url)
print -----------------------------------------
print avg_Logical: ,sum_Logical/length
print avg_Physical_reads:,sum_Physical_reads/length
print avg_Physical_writes,sum_Physical_writes/length
print avg_Executes ,sum_Executes/length
print avg_Transactions ,sum_Transactions/length
效果截图:
python机器学习数据建模与分析——数据预测与预测建模 机器学习的预测建模在多个领域都具有重要的应用价值,包括个性化推荐、商品搜索、自动驾驶、人脸识别等。本篇文章将带领大家了解什么是预测建模
python代码如何将8个数据放在8个核心上面? 在 Python 中,可以使用 multiprocessing 库来实现将数据分配给多个核心的并行计算。下面是一个简单的示例,演示如何使用 multiprocessing.Pool 类将 8 个数据分配给 8 个核心进行并行计算。
python实战爬取招聘网站职位数据 大家都知道金三银四是每年的求职高峰期,是中国招聘市场中最热门的季节之一。这段时间内,许多公司会发布大量的招聘信息,吸引大批求职者前来应聘。同时,也有许多人选择这个时候跳槽,因为这个时候找到新工作的机会相对较大。
Python版本数据探查的一些方法和Demo 探查度量值是数据分析中至关重要的一步,它可以帮助我们了解数据类型、发现异常值、理解数据分布、提供数据参考等。这些信息对于我们进一步的数据处理和分析都至关重要。使用Python中的Pandas和PyTorch等工具,我们可以快速实现数据类型确定、描述性分析和探索性数据分析。
import sys
import urllib
import HTMLParser
import string
sum_Logical=0
sum_Physical_reads=0
sum_Physical_writes=0
sum_Executes=0
sum_Transactions=0
##因为从awr获取的数值为unicode类型的,必须把值转换为数字!
def utof(s1):
s2=s1.strip()
s3=s2.encode(utf-8)
s4=s3.split(,)
length=len(s4)
if length =1 :
t1= string.atof(s4[0])
return t1
elif length == 2:
t1=string.atof(s4[1])+string.atof(s4[0])*1000
return t1
elif length == 3: t1=string.atof(s4[2])+string.atoi(s4[1])*1000+string.atoi(s4[0])*1000000
return t1
else:
return 0
##类是解析html并且从html上获取想要的数据
urltext = []
class CustomParser(HTMLParser.HTMLParser):
selected=(table, h1, font, ul, li, tr, td, a)
def reset(self):
HTMLParser.HTMLParser.reset(self)
self._level_stack = []
def handle_starttag(self, tag, attrs):
if tag in CustomParser.selected:
self._level_stack.append(tag)
def handle_endtag(self, tag):
if self._level_stack \
and tag in CustomParser.selected \
and tag == self._level_stack[-1]:
self._level_stack.pop()
##获取html上出去标签之后的文本数据
def handle_data(self, data):
if "/".join(self._level_stack) in (table/tr/td,table/tr/td/h1/font,table/tr/td/ul/li) and data !=\n:
urltext.append(data)
##对传入的url 进行解析并获取数据
def gethtml(url):
content = unicode(urllib.urlopen(url,params).read(), GB2312)
parser = CustomParser()
parser.feed(content)
parser.close()
Logical=[]
Physical_reads=[]
Physical_writes=[]
Executes=[]
Transactions=[]
###计算想要的数据
def calucate(urltext):
print -----------------------------------------
global sum_Logical
global sum_Physical_reads
global sum_Physical_writes
global sum_Executes
global sum_Transactions
k=0
for item in urltext:
k=k+1
if k 50 :
continue
elif item ==Logical reads: :
sum_Logical +=utof(urltext[k])
print Logical reads: ,urltext[k].strip()
elif item == Physical reads: :
sum_Physical_reads +=utof(urltext[k])
print Physical reads: ,urltext[k].strip()
elif item == Physical writes: :
sum_Physical_writes +=utof(urltext[k])
print Physical writes: ,urltext[k].strip()
elif item ==Executes::
sum_Executes += utof(urltext[k])
print Executes: ,urltext[k].strip()
elif item == Transactions: :
sum_Transactions += utof(urltext[k])
print Transactions: ,urltext[k].strip()
elif k 86:
break
if len(sys.argv) 1:
params = urllib.urlencode({ip: sys.argv[1], action: 2})
else:
params = None
um_Logical=0
sum_Physical_reads=0
sum_Physical_writes=0
sum_Executes=0
sum_Transactions=0
url=[http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111211_10_16119_16120.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111211_17_16126_16127.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111210_17_16102_16103.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111210_10_16095_16096.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111209_17_16078_16079.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111208_17_16054_16055.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111209_10_16071_16072.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111208_10_16047_16048.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111207_17_16030_16031.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111207_10_16023_16024.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111206_17_16006_16007.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111206_10_15999_16000.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111205_17_15982_15983.html,
http://127.0.0.1/cacti/spreport/rac3.yangql.com/sp_yangdb_20111205_10_15975_15976.html
]
for val in url:
gethtml(val)
calucate(urltext)
urltext = []
length=len(url)
print -----------------------------------------
print avg_Logical: ,sum_Logical/length
print avg_Physical_reads:,sum_Physical_reads/length
print avg_Physical_writes,sum_Physical_writes/length
print avg_Executes ,sum_Executes/length
print avg_Transactions ,sum_Transactions/length
效果截图:
![22664653_201112131148391.jpg](http://blog.itpub.net/attachments/2011/12/22664653_201112131148391.jpg)
python机器学习数据建模与分析——数据预测与预测建模 机器学习的预测建模在多个领域都具有重要的应用价值,包括个性化推荐、商品搜索、自动驾驶、人脸识别等。本篇文章将带领大家了解什么是预测建模
python代码如何将8个数据放在8个核心上面? 在 Python 中,可以使用 multiprocessing 库来实现将数据分配给多个核心的并行计算。下面是一个简单的示例,演示如何使用 multiprocessing.Pool 类将 8 个数据分配给 8 个核心进行并行计算。
python实战爬取招聘网站职位数据 大家都知道金三银四是每年的求职高峰期,是中国招聘市场中最热门的季节之一。这段时间内,许多公司会发布大量的招聘信息,吸引大批求职者前来应聘。同时,也有许多人选择这个时候跳槽,因为这个时候找到新工作的机会相对较大。
Python版本数据探查的一些方法和Demo 探查度量值是数据分析中至关重要的一步,它可以帮助我们了解数据类型、发现异常值、理解数据分布、提供数据参考等。这些信息对于我们进一步的数据处理和分析都至关重要。使用Python中的Pandas和PyTorch等工具,我们可以快速实现数据类型确定、描述性分析和探索性数据分析。
相关文章
- python新建txt文件,并逐行写入数据
- python cx_oracle单个表中批量插入数据
- Python中elasticsearch插入和更新数据的实现方法
- Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接
- python插入记录后获取最后一条数据的id
- python——KITTI数据集.bin转.pcd/.txt并可视化
- 华为OD机试 - 组合出合法最小数(Java & JS & Python)
- Python:数据类型转换之将Scikit-learn的Bunch数据类型转换为Pandas的DataFrame类型案例及代码实现
- Python之matplotlib:基于matplotlib库利用python语言实现一张画布显示多张图的多种方法
- Python语言编程学习:利用python输出当前python版本、MSC版本型号
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Entry/Entry的Command)
- Python:利用python编程实现三维图像绘制展示(六面体旋转、三维球柱状体、下雪场景等)
- 已解决(Python安装报错)Visit python.org to download an earlier version of Python.
- 让我们用python来采集数据看看找工作都要会什么吧~
- 汽车何其多,python真无敌,采集数据信息~
- python批量采集某商品数据~(requests版)
- Python采集视频数据,下载流媒体m3u8格式
- 【Python成长之路】python 基础篇 -- 装饰器【华为云分享】
- Python实现Prophet时间序列数据建模与异常值检测(Prophet算法)项目实战
- 【项目实战】Python基于局部离群因子LOF算法(LocalOutlierFactor)实现信用卡数据异常值检测项目实战
- python 结构化数据解析
- python-arima模型statsmodels库实现-有数据集
- 推荐系统协同过滤-python实现(基于用户的协同过滤算法,基于物品的协同过滤算法,附数据集)
- python实现类似C语言结构的数据(亲测可用)
- Python开发学习之Python和Excel的数据实现互通
- python基础===数据伪造模块faker
- python基础===八大排序算法的 Python 实现
- 【Mathorcup杯大数据挑战赛复赛 A题 二手车估价】复赛思路及Python实现
- 用Python爬取电影数据并可视化分析
- 【异常】前端ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- 最常用的Python库--机器学习和数据科学必备神器
- python工具方法 26 应用于图像分类的mixup与cutmix数据混合增强方式实现
- 【Python】3.python实现图片上传到阿里云OSS
- Python基础数据之列表知识(二)