Lo siguiente, será un pequeño código para parsear XML a JSON usando la librería BeautifulSoup. Un código que les servirá a las personas que estén dando su primeros pasos en el scraping.
import sys
import os
import signal
from json import dumps
from bs4 import BeautifulSoup
def xml2json(data):
xml_parser = []
for _ in data:
xml_parser.append({
_.name:
(_.attrs, _.text)
})
return dumps(xml_parser, indent=6)
if (__name__ == '__main__'):
program = sys.argv[0]
argv = sys.argv[1:]
if (argv == []):
print(f'Uso: {program} <file>.xml')
sys.exit(1)
xml_file = argv[0]
if (xml_file[0] == '-'):
xml_data = sys.stdin.read()
else:
if not (os.path.isfile(xml_file)):
print('Error, el archivo XML no existe')
sys.exit(2)
with open(xml_file, 'rb') as _file_object:
xml_data = _file_object.read()
xml_data = BeautifulSoup(xml_data, 'xml').find_all()
print(xml2json(xml_data))
PD-#1: No dejé nada de comentarios, para que hagan una investigación ardua sobre todo ello... Su compañero será help(...)
PD-#2: Ejecuten lo siguiente y verán una magia:
nmap -T5 -n localhost -oX - | python3 xml2json.py - | less
~ DtxdF