前言:
AWVS web漏洞扫描工具报告默认只能输出pdf与html类型。但现有需求要excel类型的报告。开始使用AWVS api 接口从AWVS scan里爬取漏洞数据输出EXCEL,但此方法有诸多不便之处。巧在近期对Python爬虫技术领域学有小成,得以用武之地。
0x01
所用到的库:bs4 openpyxl re os
爬取AWVS报告的类型:Affected_Items
0x02
为方便批量提取,在这里定义一个函数来判断文件类型,再定义一个函数遍历html文件并放到beautifulsoul里面解析,这里使用lxml解析器:
def endWith(file,*endstring):
array = map(file.endswith,endstring)
if True in array:
return True
else:
return False
def openFile():
file = os.listdir('.')
for k in range(len(file)):
if endWith(file[k],'.html'):
soup = BeautifulSoup(open(file[k], mode='r', encoding='utf-8'), 'lxml')
get_detail(soup)
0x03
对页面进行分析,发现每个漏洞的数据都单独存放在一个table标签里,使用find_all传入一个函数来定位这些table标签。再使用css选择器语法在每个table标签里取子节点tr、td 放到字典里。
def has_border_but_no_class(tag)