En esta publicación, veremos cómo podemos convertir un código fuente HTML en un objeto JSON. Los objetos JSON se pueden transferir fácilmente y son compatibles con la mayoría de los lenguajes de programación modernos. Podemos leer JSON desde Javascript y analizarlo fácilmente como un objeto Javascript. Javascript se puede utilizar para hacer HTML para sus páginas web.
Usaremos el módulo xmltojson en esta publicación. La función de análisis de este módulo toma el HTML como entrada y devuelve la string JSON analizada.
Sintaxis: xmltojson.parse(xml_input, xml_attribs=True, item_ depth=0, item_callback)
Parámetros:
- xml_input puede ser un archivo o una string.
- xml_attribs incluirá atributos si se establece en True. De lo contrario, ignórelos si se establece en False.
- item_ depth es la profundidad de los elementos secundarios para los que se llama a la función item_callback cuando se encuentra.
- item_callback es una función de devolución de llamada
Configuración del entorno:
Instale los módulos requeridos:
pip install xmltojson pip install requests
Pasos:
- Importar las bibliotecas
Python3
import xmltojson import json import requests
- Obtenga el código HTML y guárdelo en un archivo.
Python3
# Sample URL to fetch the html page url = "https://geeksforgeeks-example.surge.sh" # Headers to mimic the browser headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 \ (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36' } # Get the page through get() method html_response = requests.get(url=url, headers = headers) # Save the page content as sample.html with open("sample.html", "w") as html_file: html_file.write(html_response.text)
- Utilice la función de análisis para convertir este HTML en JSON. Abra el archivo HTML y use la función de análisis del módulo xmltojson .
Python3
with open("sample.html", "r") as html_file: html = html_file.read() json_ = xmltojson.parse(html)
- La variable json_ contiene una string JSON que podemos imprimir o volcar en un archivo.
Python3
with open("data.json", "w") as file: json.dump(json_, file)
- Imprima la salida.
Python3
print(json_)
Código completo:
Python3
import xmltojson import json import requests # Sample URL to fetch the html page url = "https://geeksforgeeks-example.surge.sh" # Headers to mimic the browser headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 \ (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36' } # Get the page through get() method html_response = requests.get(url=url, headers = headers) # Save the page content as sample.html with open("sample.html", "w") as html_file: html_file.write(html_response.text) with open("sample.html", "r") as html_file: html = html_file.read() json_ = xmltojson.parse(html) with open("data.json", "w") as file: json.dump(json_, file) print(json_)
Producción:
{“html”: {“@lang”: “en”, “head”: {“title”: “Document”}, “body”: {“div”: {“h1”: “Geeks For Geeks”, “ pags»:
“¡Bienvenidos al mundo de los geeks de la programación!”, “input”: [{“@type”: “text”, “@placeholder”: “Ingrese su nombre”},
{“@tipo”: “botón”, “@valor”: “enviar”}]}}}}
Publicación traducida automáticamente
Artículo escrito por mukulbindal170299 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA