En este artículo, veremos cómo insertar una nueva etiqueta en un objeto BeautifulSoup. Vea los siguientes ejemplos para tener una mejor idea sobre el tema.
Ejemplo:
HTML_DOC:
“””
<html>
<cabeza>
<title> Datos de la tabla </title>
</cabeza>
<cuerpo>
<div> Esta es la muestra del div 1 </div>
<div> Esta es la muestra div 2 </div>
</cuerpo>
</html>
“””
new_tag : <div> Este es un nuevo div </div>
Objeto BeautifulSoup modificado:
“””
<html>
<cabeza>
<title> Datos de la tabla </title>
</cabeza>
<cuerpo>
<div> Esta es la muestra del div 1 </div>
<div> Esta es la muestra div 2 </div>
<div> Este es un nuevo div </div>
</cuerpo>
</html>
“””
Módulos Requeridos:
BeautifulSoup (bs4): Ejecute el siguiente comando en la terminal para instalar esta biblioteca-
pip install bs4 or pip install beautifulsoup4
Creando una nueva etiqueta usando el método new_tag() :
Se puede crear una nueva etiqueta llamando a la función incorporada de BeautifulSoup new_tag() .
Insertar una nueva etiqueta usando el método append() :
La nueva etiqueta se agrega al final de la etiqueta principal.
Python3
# Import Module from bs4 import BeautifulSoup # HTML Document HTML_DOC = """ <html> <head> <title> Add new Tag </title> </head> <body> <div> This is sample div 1 </div> <div> This is sample div 2 </div> </body> </html> """ # Function to append new tag def addTag(html): # parse html content soup = BeautifulSoup(html, "html.parser") # create new tag # Here we are creating a new div new_div = soup.new_tag("div") # Adding content to div new_div.string = " This is new div " # Appending new div to html tree soup.html.body.append(new_div) # Printing the modified object print(soup) # Function Call addTag(HTML_DOC)
Producción:
Insertar una nueva etiqueta usando el método insert() :
Con este método, la nueva etiqueta no se agrega al final de la etiqueta principal, sino que se inserta en una posición numérica dada. Funciona igual que el método .insert() de la lista de Python. Por ejemplo, si queremos insertar el nuevo div entre div 1 y div 2, podemos usar
soup.html.body.insert(2, new_div)
Esto insertaría el nuevo div en la posición 2, es decir, entre los 2 div anteriores.
Python3
# Import Module from bs4 import BeautifulSoup # HTML Document HTML_DOC = """ <html> <head> <title> Add new Tag </title> </head> <body> <div> This is sample div 1 </div> <div> This is sample div 2 </div> </body> </html> """ # Function to inset new tag def addTag(html): # parse html content soup = BeautifulSoup(html, "html.parser") # create new tag # Here we are creating a new div new_div = soup.new_tag("div") # Adding content to div new_div.string = " This is new div " # Inserting new div to html tree # Here, 2 represents the position # where we want to insert the new tag soup.html.body.insert(2, new_div) # Printing the modified object print(soup) # Function Call addTag(HTML_DOC)
Producción:
Insertar una nueva etiqueta usando el método insert_before() :
El método insert_before() se usa para insertar una nueva etiqueta justo antes de la etiqueta dada.
Python3
# Import Module from bs4 import BeautifulSoup # HTML Document HTML_DOC = """ <html> <head> <title> Add new Tag </title> </head> <body> <div> This is sample div 1 </div> <div> This is sample div 2 </div> </body> </html> """ # Function to insert new tag before given tag def addTag(html): # parse html content soup = BeautifulSoup(html, "html.parser") # create new tag # Here we are creating a new div new_div_before = soup.new_tag("div") # Adding content to div new_div_before.string = " This is new div before div 1 " # Inserting new tag before div 1 soup.html.body.div.insert_before(new_div_before) # Printing the modified object print(soup) # Function Call addTag(HTML_DOC)
Producción:
Insertar una nueva etiqueta usando el método insert_after() :
El método insert_after() se usa para insertar una nueva etiqueta justo después de la etiqueta dada.
Python3
# Import Module from bs4 import BeautifulSoup # HTML Document HTML_DOC = """ <html> <head> <title> Add new Tag </title> </head> <body> <div> This is sample div 1 </div> <div> This is sample div 2 </div> </body> </html> """ # Function to insert new tag after given tag def addTag(html): # parse html content soup = BeautifulSoup(html, "html.parser") # create new tag # Here we are creating a new div new_div_after = soup.new_tag("div") # Adding content to div new_div_after.string = " This is new div after div 1 " # Inserting new tag after div 1 soup.html.body.div.insert_after(new_div_after) # Printing the modified object print(soup) # Function Call addTag(HTML_DOC)
Producción:
Publicación traducida automáticamente
Artículo escrito por yuvraj_chandra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA