Prerrequisitos: BeautifulSoup
En este artículo, discutiremos diferentes tipos de objetos en Beautifullsoup. Cuando la string o el documento HTML se proporciona en el constructor de BeautifulSoup, este constructor convierte este documento en diferentes objetos de Python.
Los cuatro objetos principales e importantes son:
- HermosaSopa
- Etiqueta
- string navegable
- Comentarios
1. Objeto BeautifulSoup: El objeto BeautifulSoup representa el documento analizado como un todo. Por lo tanto, es el documento completo que estamos tratando de raspar. Para la mayoría de los propósitos, puede tratarlo como un objeto Tag.
Python3
# importing the module from bs4 import BeautifulSoup # parsing the document soup = BeautifulSoup('''<h1>Geeks for Geeks</h1>''', "html.parser") print(type(soup))
Producción:
<class 'bs4.BeautifulSoup'>
2. Objeto de etiqueta: el objeto de etiqueta corresponde a una etiqueta XML o HTML en el documento original. Además, este objeto generalmente se usa para extraer una etiqueta de todo el documento HTML. Además, Beautiful Soup no es un cliente HTTP, lo que significa que para descartar sitios web en línea, primero debe descargarlos usando el módulo de requests y luego entregárselos a Beautiful Soup para eliminarlos. Además, este objeto devuelve la primera etiqueta encontrada si su documento tiene varias etiquetas con el mismo nombre.
Python3
# Import Beautiful Soup from bs4 import BeautifulSoup # Initialize the object with an HTML page soup = BeautifulSoup(''' <html> <b>Geeks for Geeks</b> </html> ''', "html.parser") # Get the tag tag = soup.b # Print the output print(type(tag))
Producción:
<class 'bs4.element.Tag'>
La etiqueta contiene muchos métodos y atributos. Y dos características importantes de una etiqueta son su nombre y sus atributos.
- Nombre
- Atributos
# Nombre :
Se puede acceder al nombre de la etiqueta a través de ‘.name’ como sufijo.
Sintaxis: etiqueta.nombre
Retorno: el tipo de etiqueta que es.
También podemos cambiar el nombre de la etiqueta.
Python3
# Import Beautiful Soup from bs4 import BeautifulSoup # Initialize the object with an HTML page soup = BeautifulSoup(''' <html> <b>Geeks for Geeks</b> </html> ''', "html.parser") # Get the tag tag = soup.b # Print the output print(tag.name) # changing the tag tag.name = "Strong" print(tag)
Producción:
b <Strong>Geeks for Geeks</Strong>
# Atributos:
Ejemplo 1: Cualquier cosa que NO sea una etiqueta, es básicamente un atributo y debe contener un valor. Un objeto de etiqueta puede tener muchos atributos y se puede acceder a él accediendo a las claves o accediendo directamente a través del valor. También podemos modificar los atributos y su valor.
Python3
# Import Beautiful Soup from bs4 import BeautifulSoup # Initialize the object with an HTML page soup = BeautifulSoup(''' <html> <b class="gfg">Geeks for Geeks</b> </html> ''', "html.parser") # Get the tag tag = soup.b print(tag["class"]) # modifying class tag["class"] = "geeks" print(tag) # delete the class attributes del tag["class"] print(tag)
Producción:
['gfg'] <b class="geeks">Geeks for Geeks</b> <b>Geeks for Geeks</b>
Ejemplo 2: un documento puede contener atributos de varios valores y se puede acceder a ellos mediante un par clave-valor.
Python3
# Import Beautiful Soup from bs4 import BeautifulSoup # Initialize the object with an HTML page # soup for multi_valued attributes soup = BeautifulSoup(''' <html> <b class="gfg geeks">Geeks for Geeks</b> </html> ''', "html.parser") # Get the tag tag = soup.b print(tag["class"])
Producción:
['gfg', 'geeks']
3. Objeto NavigableString: una string corresponde a un fragmento de texto dentro de una etiqueta. Beautiful Soup usa la clase NavigableString para contener estos fragmentos de texto.
Sintaxis: <tag> String aquí </tag>
Python3
# Import Beautiful Soup from bs4 import BeautifulSoup # Initialize the object with an HTML page soup = BeautifulSoup(''' <html> <b>Geeks for Geeks</b> </html> ''', "html.parser") # Get the tag tag = soup.b # Get the string inside the tag string = tag.string # Print the output print(type(string))
Producción:
<class 'bs4.element.NavigableString'>
4. Objeto de comentario: el objeto de comentario es solo un tipo especial de NavigableString y se usa para hacer que el código base sea más legible.
Python3
# Import Beautiful Soup from bs4 import BeautifulSoup # Create the document markup = "<b><!-- COMMENT --></b>" # Initialize the object with the document soup = BeautifulSoup(markup, "html.parser") # Get the whole comment inside b tag comment = soup.b.string # Print the type of the comment print(type(comment))
Producción:
<class 'bs4.element.Comment'>
Publicación traducida automáticamente
Artículo escrito por maheswaripiyush9 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA