El generador de descendientes lo proporciona Beautiful Soup, que es un marco de web scraping para Python. El raspado web es el proceso de extracción de datos del sitio web utilizando herramientas automatizadas para acelerar el proceso. Los atributos .contents y .children solo consideran los hijos directos de una etiqueta. El generador de descendientes se usa para iterar sobre todos los hijos de la etiqueta, recursivamente. Cada elemento secundario será el elemento de etiqueta para los elementos y NavigableString para las strings.
Sintaxis:
tag.descendants
Los siguientes ejemplos explican el concepto de generador de descendientes en Beautiful Soup.
Ejemplo 1: En este ejemplo, vamos a obtener los descendientes de un elemento.
Python3
# Import Beautiful Soup from bs4 import BeautifulSoup # Create the document doc = "<body><b> Hello world </b><body>" # Initialize the object with the document soup = BeautifulSoup(doc, "html.parser") # Get the body tag tag = soup.body # Print all the descendants of tag for descendant in tag.descendants: print(descendant)
Producción:
<b> Hello world </b> Hello world <body></body>
Ejemplo 2: En este ejemplo vamos a ver el tipo de descendientes.
Python3
# Import Beautiful Soup from bs4 import BeautifulSoup # Create the document doc = "<body><b> Hello world </b><body>" # Initialize the object with the document soup = BeautifulSoup(doc, "html.parser") # Get the body tag tag = soup.body # Print the type of the descendants of tag for descendant in tag.descendants: print(type(descendant))
Producción:
<class 'bs4.element.Tag'> <class 'bs4.element.NavigableString'> <class 'bs4.element.Tag'>