Requisito previo: – Requests , BeautifulSoup
La tarea es escribir un programa para encontrar todas las clases para una URL de sitio web determinada. En Beautiful Soup no hay un método incorporado para encontrar todas las clases.
Módulo necesario:
- bs4 : Beautiful Soup (bs4) es una biblioteca de Python para extraer datos de archivos HTML y XML. Este módulo no viene integrado con Python. Para instalar este tipo, escriba el siguiente comando en la terminal.
pip install bs4
- requests : Requests le permite enviar requests HTTP/1.1 muy fácilmente. Este módulo tampoco viene integrado con Python. Para instalar este tipo, escriba el siguiente comando en la terminal.
pip install requests
Métodos #1: Encontrar la clase en un documento HTML dado.
Acercarse:
- Crea un documento HTML.
- Módulo de importación.
- Analice el contenido en BeautifulSoup.
- Iterar los datos por nombre de clase.
Código:
Python3
# html code html_doc = """<html><head><title>Welcome to geeksforgeeks</title></head> <body> <p class="title"><b>Geeks</b></p> <p class="body">geeksforgeeks a computer science portal for geeks </body> """ # import module from bs4 import BeautifulSoup # parse html content soup = BeautifulSoup( html_doc , 'html.parser') # Finding by class name soup.find( class_ = "body" )
Producción:
<p class="body">geeksforgeeks a computer science portal for geeks </p>
Métodos #2: A continuación se muestra el programa para encontrar todas las clases en una URL.
Acercarse:
- Módulo de importación
- Hacer una instancia de requests y pasar a la URL
- Pase las requests a una función Beautifulsoup()
- Luego iteraremos todas las etiquetas y buscaremos el nombre de la clase.
Código:
Python3
# Import Module from bs4 import BeautifulSoup import requests # Website URL URL = 'https://www.geeksforgeeks.org/' # class list set class_list = set() # Page content from Website URL page = requests.get( URL ) # parse html content soup = BeautifulSoup( page.content , 'html.parser') # get all tags tags = {tag.name for tag in soup.find_all()} # iterate all tags for tag in tags: # find all element of tag for i in soup.find_all( tag ): # if tag has attribute of class if i.has_attr( "class" ): if len( i['class'] ) != 0: class_list.add(" ".join( i['class'])) print( class_list )
Producción: