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: