您的位置:首页 > 编程语言 > Python开发

[python] 使用urllib从页面上采集信息示例

2017-11-03 21:51 656 查看
环境:linux,python3
作用:模拟Linux curl功能,采集URL信息

示例1:从hbase集群管理页面上采集信息
#!/usr/bin/env python
# -*- coding:utf-8 -*-
'''
从URL中采集所需信息,这边是用于采集hbase集群管理页面每秒请求数和region数量
'''
import re
import urllib.request
pagehandler = urllib.request.urlopen("http://127.0.0.1:60010/master-status?filter=general#baseStats")
content = pagehandler.read().decode()
result=re.findall('.*Total(.*?)Used Heap.*',content,re.S) ####(.*?)表示除换行外的所有字符,非贪婪模式,re.S使 . 匹配包括换行在内的所有字符
msg = re.findall(r'<td>(\d+)</td>',result[0])    ####取出数值,HBASE集群每秒请求数和region数量。注意,这边取出后为字符串
print(msg)


示例2:从Kafka管理界面上采集队列堵塞数据量信息
#!/usr/bin/env python
# -*- coding:utf-8 -*-
'''
kafka管理页面上,lag列为消息堵塞数量,无法直接从URL返回的信息中采集该值,需要由logSize-offset计算得出
'''
import json
import urllib.request
pagehandler = urllib.request.urlopen("http://127.0.0.1:8086/group/test_group")
content = pagehandler.read().decode()
m = json.loads(content)
topic_dict = {}
for i in m['offsets']:
blocking_num = 0
#print(i['topic'],i['offset'],i['logSize'])
blocking_num +=  (i['logSize'] - i['offset'])	   ####计算队列堵塞量
if i['topic'] in topic_dict:			   ####将结果按topic_name:blocking_num存放在字典里
topic_dict[i['topic']] += blocking_num
else:
topic_dict[i['topic']] = blocking_num

#print(topic_dict)
for key in topic_dict:
if topic_dict[key] > 3000:
print("topic:",key,",blocking msg num:",topic_dict[key])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python urllib