背景介绍
今天需要分析一个自动测试的结果,并且加入到zabbix中进行监控
但对方给出的结果是一个html文件且无法给出json
,需要从html文件中获得相应的结果
html分析工具
1. HTMLParser, python自带,但感觉不太好用
2. BeautifulSop, 网上看到说的很强大,以后有时间再研究
3. Pyquery, 基于jQuery风格的代码,最近一直在写前端,感觉很亲切, so那就用这个吧
Centos 6.5安装pyquery
1. sudo yum install libxml2-devel python-devel libxslt-devel //必须安装这三个包,否则pip安装会报错
2. sudo pip install pyquery
分析代码
#!/usr/bin/env python
import requests
from pyquery import PyQuery as pq
import sys
r = requests.get('http://xx.xx.xx.xx/index.html')
d = pq(r.content) //注意这里,一定要用content或者raw等原始的数据,不支持进行格式转化后的数据
result = d("a.popup_link").text() //初始化以后,就可以像jQuery一样进行元素的选取了
keys = d(".testcase").text()
values = d(".popup_link").text()
data = {}
for i,j in zip(keys.split(), values.split()):
if j == 'pass':
j = 0
else:
j = 1
data[i] = j
argv = sys.argv[1:][0]
print data[argv]