En este artículo, veremos cómo se puede emplear beautifulsoup para seleccionar al niño enésimo. Para ello se utilizan los métodos select() del módulo. El método select() usa el paquete SoupSieve para usar el selector CSS contra el documento analizado.
Sintaxis: seleccionar («css_selector»)
SELECTOR DE CSS:
- nth-of-type(n): selecciona el enésimo párrafo hijo del padre.
- nth-child(n): Selecciona el párrafo que es el enésimo hijo del padre
Acercarse:
- Módulo de importación
- Extraer datos de una página web.
- Analizar la string raspada a HTML.
- Use la función find() para obtener la etiqueta con el nombre de clase dado o id o tag_name.
- Use select («css_selector») para encontrar el enésimo hijo
- Imprimir el niño.
Ejemplo 1:
Python3
# importing module from bs4 import BeautifulSoup markup = """ <html> <head> <title>GEEKS FOR GEEKS EXAMPLE</title> </head> <body> <p class="1"><b>Geeks for Geeks</b></p> <p class="coding">A Computer Science portal for geeks. <h1>Heading</h1> <b class="gfg">Programming Articles</b>, <b class="gfg">Programming Languages</b>, <b class="gfg">Quizzes</b>; </p> <p class="coding">practice</p> </body> </html> """ # parsering string to HTML soup = BeautifulSoup(markup, 'html.parser') parent = soup.find(class_="coding") # assign n n = 2 # print the 2nd <b> of parent print(parent.select("b:nth-of-type("+str(n)+")")) print() # print the <b> which is the 2nd child of the parent print(parent.select("b:nth-child("+str(n)+")"))
Producción:
Explicación:
- select(“p:nth-of-type(n)”) significa seleccionar el enésimo párrafo hijo del padre.
- select(“p:nth-child(n)”) significa seleccionar el párrafo que es el enésimo hijo del padre.
- Ambas funciones devolverán [] si un padre no tiene nth-child.
Ejemplo 2:
Python3
# importing module from bs4 import BeautifulSoup import requests # assign website sample_website='https://www.geeksforgeeks.org/python-programming-language/' page=requests.get(sample_website) # parsering string to HTML soup = BeautifulSoup(page.content, 'html.parser') parent = soup.find(class_="wrapper") # assign n n = 1 # print the 2nd <b> of parent print(parent.select("b:nth-of-type("+str(n)+")")) print() # print the <b> which is the 2nd child of the parent print(parent.select("b:nth-child("+str(n)+")"))
Producción:
Publicación traducida automáticamente
Artículo escrito por maheswaripiyush9 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA