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