¿Cómo encontrar una etiqueta HTML que contenga cierto texto usando BeautifulSoup?

En este artículo, vamos a ver cómo encontrar una etiqueta HTML que contenga cierto texto usando BeautifulSoup.

Métodos utilizados:

Abrir (nombre de archivo, modo): Abre el nombre de archivo dado en ese modo que hemos pasado.

find_all ( ): Encuentra todos los patrones en el archivo que coincidirán con la expresión pasada.

Aquí, en el siguiente código, encontramos cierto texto mencionado como un patrón en el programa, en varias etiquetas diferentes. Ahora el código proporcionará todas estas etiquetas en las que el texto coincidirá con el patrón.

Acercarse: 

Aquí primero importamos las expresiones regulares y las bibliotecas de BeautifulSoup. Luego abrimos el archivo HTML usando la función de apertura que queremos analizar. Luego, usando la función find_all, encontramos una etiqueta particular que pasamos dentro de esa función y también el texto que queremos tener dentro de la etiqueta. Si la etiqueta pasada tiene ese texto determinado, se agrega a una lista. 

Entonces, todas las etiquetas que tienen cierto texto se almacenan en una lista y luego se imprime la lista. Si obtenemos la lista vacía, significa que no existe tal etiqueta con el texto que intentábamos verificar.

A continuación se muestra el archivo HTML para demostración:

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>GFG </title>
</head>
<body>
    <a href="https://www.geeksforgeeks.org/">Geeks For Geeks</a>
    <a href="Dummy Check Text">Geeks For Geeks</a>
    <a href="Dummywebsite.com">Dummy Text</a>
 
    <h1>Hello</h1>
    <h1>Python Program</h1>
 
   <span class = true>Geeks For Geeks</span>
   <span class = false>Geeks For Geeks</span>
 
   <li class = 1 >Python Program</li>
   <li class = 2 >Python Code</li>
 
   <table>
       <tr>GFG Website</tr>
   </table>
 
</body>
</html>

 Producción: 

A continuación se muestra la implementación:

Python3

# Python program to find a HTML tag
# that contains certain text Using BeautifulSoup
 
# Importing library
from bs4 import BeautifulSoup
import re
 
# Opening and reading the html file
file = open("gfg.html", "r")
contents = file.read()
 
soup = BeautifulSoup(contents, 'html.parser')
 
# Finding a pattern(certain text)
pattern = 'Geeks For Geeks'
 
# Anchor tag
text1 = soup.find_all('a', text = pattern)
print(text1)
 
# Span tag
text2 = soup.find_all('span', text = pattern) 
print(text2)
 
# Finding a pattern(certain text)
pattern2 = 'Python Program'
 
# Heading tag
text3 = soup.find_all('h1', text = pattern2) 
print(text3)
 
# List tag
text4 = soup.find_all('li', text = pattern2) 
print(text4)
 
# Finding a pattern(certain text)
pattern3 = 'GFG Website'
 
# Table(row) tag
text5 = soup.find_all('tr', text = pattern3) 
print(text5)

Producción:  

[<a href=”https://www.geeksforgeeks.org/”>Geeks para Geeks</a>, <a href=”Dummy Check Text”>Geeks para Geeks</a>]

[<span class=”true”>Geeks para Geeks</span>, <span class=”false”>Geeks para Geeks</span>]

[<h1>Programa Python</h1>]

[<li class=”1″>Programa Python</li>]

[<tr>Sitio web de GFG</tr>]

Publicación traducida automáticamente

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