Python BeautifulSoup: encuentra todas las clases

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:

Publicación traducida automáticamente

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