NSFOCUS_V5 漏扫报告 漏洞提取工具编写
代码地址:https://github.com/ssjt21/nsfocus_V5_V6_2_excel
A. XPATH尝试
1. 尝试了一下,在提取tr标签时总是出现问题,总是提取数量不够,不知道那里有问题
2. 各种方式尝试无果,想想,最近比较清闲,就用正则写吧,( BeatifuSoup 使用很简单,数度就是慢一点了)
B. 使用了zipfile模块,可以再不解压的方式下对压缩包中的数据读取
C. 坑: \xa0 编码GBK写入Excel总是出错的问题:需要将编码转至str然后使用 replace 方法,也有使用 ''.join(s.split()),但是我的并没有起效
1 replace(u'\xa0',u' ') #处理然后再转成目标编码
D. 处理数据的时候,一次匹配不不到目标数据,可以使用多次匹配,先匹配大范围的目标,然后一步一步直接
在匹配之前一定使用编辑器将代码格式化,然后大概的把目标数据浏览下,确定唯一识别的边界
使用浏览器固然方便,但是有的时候,浏览器会做一些处理,比如将单引号转成双引号,导致你无法正确匹配
E . cprint 模块使用起来很不错,但是就是不支持cmd控制台,表示有点遗憾
F. 网上找来编码处理的一段代码很不错,分享出来:
def getCoding(strInput): ''' 获取编码格式 ''' if isinstance(strInput, unicode): return "unicode" try: strInput.decode("utf8") return 'utf8' except: pass try: strInput.decode("gbk") return 'gbk' except: pass def tran2UTF8(strInput): ''' 转化为utf8格式 ''' strCodingFmt = getCoding(strInput) if strCodingFmt == "utf8": return strInput elif strCodingFmt == "unicode": return strInput.encode("utf8") elif strCodingFmt == "gbk": return strInput.decode("gbk").encode("utf8") def tran2GBK(strInput): ''' 转化为gbk格式 ''' strCodingFmt = getCoding(strInput) if strCodingFmt == "gbk": return strInput elif strCodingFmt == "unicode": return strInput.encode("gbk") elif strCodingFmt == "utf8": return strInput.decode("utf8").encode("gbk")
G: IF使用记录一下:
def getlevel(value): try: value=int(value) return u'高' if value>=7 else u'中' if value>=4 else u'低' except: return False pass
H: 使用Pyinstaller将脚本打包过后无法运行的原因:
带有中文的输出的地方都要统一转换成Unicode编码,要在前面加u