¿Cómo modificar HTML usando BeautifulSoup?

BeautifulSoup en Python ayuda a extraer la información de las páginas web hechas de HTML o XML. No solo implica eliminar datos, sino que también implica buscar, modificar e iterar el árbol de análisis. En este artículo, discutiremos la modificación del contenido directamente en la página web HTML usando BeautifulSoup.

Sintaxis:

old_text=soup.find(“#Widget”, {“id”:”#Id nombre del widget en el que desea editar”})

new_text=old_text.find(text=re.compile(‘#Texto que desea editar’)).replace_with(‘#Nuevo texto con el que desea reemplazar’)

Términos utilizados:

  • Widget: aquí, widget representa el widget particular en el que se encuentra almacenado actualmente el texto que desea reemplazar del sitio web.
  • Nombre de identificación: aquí, Nombre de identificación representa el nombre que le ha dado a la identificación del widget en particular en el que se almacena el texto.

Ejemplo:

Por ejemplo, considere esta fuente de página simple.

HTML

<!DOCTYPE html>
<html>
  <head>
    My First Heading
  </head>
<body>
  <p id="para">
    Geeks For Geeks
  </p>
  
</body>
</html>

Una vez que haya creado un controlador, puede reemplazar el texto ‘ Geeks For Geeks ‘ con ‘ Vinayak Rai ‘ usando:

old_text=sopa.find(“p”, {“id”:”para”})

new_text=old_text.find(text=re.compile(‘Geeks For Geeks’)).replace_with(‘Vinayak Rai’)

Enfoque paso a paso:

Paso 1: Primero, importa las bibliotecas Beautiful Soup, os y re.

desde bs4 importar BeautifulSoup como bs

sistema operativo de importación

importar re

Paso 2: Ahora, elimina el último segmento del camino.

base=os.path.dirname(os.path.abspath(__file__))

Paso 3: luego, abra el archivo HTML en el que desea realizar un cambio.

html=open(os.path.join(base, ‘#Nombre del archivo HTML en el que desea editar’))

Paso 4: Además, analice el archivo HTML en Beautiful Soup.

sopa=bs(html, ‘html.parser’)

Paso 5: Además, proporcione la ubicación adecuada del texto que desea reemplazar. 

old_text=soup.find(“#Widget Name”, {“id”:”#Id name of widget in which you want to edit”})

Paso 6: A continuación, reemplace el texto ya almacenado con el nuevo texto que desea asignar.

new_text=old_text.find(text=re.compile(‘#Texto que desea editar’)).replace_with(‘#Nuevo texto con el que desea reemplazar’)

Paso 7: Finalmente, modifique el archivo HTML para ver los cambios realizados en el paso anterior.

with open(“#Nombre del archivo HTML en el que desea almacenar el texto editado”, “wb”) como f_output:

   f_output.write(sopa.prettify(“utf-8”))

Implementación:

Python

# Python program to modify HTML
# with the help of Beautiful Soup
  
# Import the libraries 
from bs4 import BeautifulSoup as bs
import os
import re
  
# Remove the last segment of the path
base = os.path.dirname(os.path.abspath(__file__))
  
# Open the HTML in which you want to make changes
html = open(os.path.join(base, 'gfg.html'))
  
# Parse HTML file in Beautiful Soup
soup = bs(html, 'html.parser')
  
# Give location where text is 
# stored which you wish to alter
old_text = soup.find("p", {"id": "para"})
  
# Replace the already stored text with 
# the new text which you wish to assign
new_text = old_text.find(text=re.compile(
    'Geeks For Geeks')).replace_with('Vinayak Rai')
  
# Alter HTML file to see the changes done
with open("gfg.html", "wb") as f_output:
    f_output.write(soup.prettify("utf-8"))

Producción:

Publicación traducida automáticamente

Artículo escrito por vin8rai 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 *