Underc0de

Programación Scripting => Python => Mensaje iniciado por: DtxdF en Marzo 21, 2020, 12:20:56 AM

Título: Simple XML2JSON
Publicado por: DtxdF en Marzo 21, 2020, 12:20:56 AM
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.

Código (python) [Seleccionar]
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:

Código (bash) [Seleccionar]
nmap -T5 -n localhost -oX - | python3 xml2json.py - | less

~ DtxdF