python—-使用re正则表达式刷选数据,去重,列表,取特定行数据(适用于web的html回包数据提取)
环境配置:对目标服务器的日志文件进行刷选特定数据(192.168.4.27)
/usr/local/tomcat_corp/logs/catalina.out
python脚本必须在该服务器上运行
1、筛选银行卡字段bankCode=
python代码:
[root@cdn tmp]# ls
findbankid_back_before.py findbankid.py findemail.py findidno.py findmobile.py findreadlname.py
[root@cdn tmp]#
[root@cdn tmp]# cat findbankid_back_before.py
#!/usr/nbin/python
# --*-- coding:utf-8 --*--
import re
lastlist = []
logyzm = open("/usr/local/tomcat_corp/logs/catalina.out").read()
#print logyzm
temp = logyzm.decode("utf8")
findword = r'.{75}bankCode=.{100}'#取该字符串前75个字符以及其后面100个字符数据
pattern = re.compile(findword)
results = re.findall(pattern,temp)
for result in results:
#print result
lastlist.append(result)
list = set(lastlist)#对重复数据进行去重处理
for l in list:
print l
[root@cdn tmp]
脚本运行情况:
[root@cdn tmp]# python findbankid_back_before.py
..............................
.............................
bjectDTO [t=[com.dinpay.dpp.domain.system.config.BankGateway@*****[id=3,bankCode=CCB,bankAccount=62148502********,rate=0.0,name=建设银行,status=1,remark=<null>,defaultFlag=0,maxLimitAmo
uency=0], com.dinpay.dpp.domain.system.config.BankGateway@*****[id=1002,bankCode=SPABANK,bankAccount=01120004********,rate=0.0,name=深圳平安银企直连代付,status=1,remark=<null>,defaultFlag=0,
tDTO [