Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Trabajando con Elementos Específicos | Descifrando HTML con Beautiful Soup
Web Scraping con Python

bookTrabajando con Elementos Específicos

Navegar por un documento HTML utilizando atributos de Python recuperará solo la primera aparición de un elemento en particular. Pero, ¿qué sucede si le interesa la primera instancia de un elemento y no conoce su ruta completa? En tales casos, puede utilizar el método .find(), pasando la etiqueta (sin los corchetes < >) como una cadena. Por ejemplo, localicemos el primer elemento <div> en el documento HTML.

123456789101112
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/jesus.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") print(soup.find("div"))
copy

Además, puede recuperar todas las instancias de un elemento específico utilizando el método .find_all(). Esto generará una lista de instancias. Por ejemplo, localicemos todas las etiquetas <p> en el documento HTML.

123456789101112
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/jesus.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") print(soup.find_all("p"))
copy

También es posible utilizar el método .find_all() para buscar no solo una, sino varias etiquetas proporcionando una lista de etiquetas. Por ejemplo, recopilación de todos los elementos <div> y <title>.

12345678910111213
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/page.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") for el in soup.find_all(["div", "title"]): print(el)
copy

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 5

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you explain the difference between .find() and .find_all() in BeautifulSoup?

How can I extract the text content from the elements found?

What other methods can I use to search for elements in BeautifulSoup?

Awesome!

Completion rate improved to 4.35

bookTrabajando con Elementos Específicos

Desliza para mostrar el menú

Navegar por un documento HTML utilizando atributos de Python recuperará solo la primera aparición de un elemento en particular. Pero, ¿qué sucede si le interesa la primera instancia de un elemento y no conoce su ruta completa? En tales casos, puede utilizar el método .find(), pasando la etiqueta (sin los corchetes < >) como una cadena. Por ejemplo, localicemos el primer elemento <div> en el documento HTML.

123456789101112
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/jesus.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") print(soup.find("div"))
copy

Además, puede recuperar todas las instancias de un elemento específico utilizando el método .find_all(). Esto generará una lista de instancias. Por ejemplo, localicemos todas las etiquetas <p> en el documento HTML.

123456789101112
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/jesus.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") print(soup.find_all("p"))
copy

También es posible utilizar el método .find_all() para buscar no solo una, sino varias etiquetas proporcionando una lista de etiquetas. Por ejemplo, recopilación de todos los elementos <div> y <title>.

12345678910111213
# Importing libraries from bs4 import BeautifulSoup from urllib.request import urlopen # Reading web page url = "https://codefinity-content-media.s3.eu-west-1.amazonaws.com/18a4e428-1a0f-44c2-a8ad-244cd9c7985e/page.html" page = urlopen(url) html = page.read().decode("utf-8") # Reading HTML with BeautifulSoup soup = BeautifulSoup(html, "html.parser") for el in soup.find_all(["div", "title"]): print(el)
copy

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 5
some-alt