from lxml import etree t = etree.fromstring(gmp.send_command('').encode()) task = t.find('.//task') rep = task.find('.//report') rid = rep.get('id') if rep is not None else None print('report_id=' + str(rid)) if rid: r = etree.fromstring(gmp.send_command(f'').encode()) total = len(r.findall('.//result')) hosts = set() sev = {} ports = set() for res in r.findall('.//result'): h = res.findtext('host') if h: hosts.add(h) s = res.findtext('severity') sev[s] = sev.get(s, 0) + 1 nvt = res.findtext('nvt') or '' print('results=' + str(total)) print('hosts_seen=' + ','.join(sorted(hosts))) print('severity_histogram=' + str(sev)) for res in r.findall('.//result')[:8]: print('- ' + (res.findtext('nvt/name') or '?')[:70] + ' | sev=' + (res.findtext('severity') or '?'))