Convierta el código fuente HTML a un objeto JSON usando Python

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *