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 '?'))