Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

Problema con el primer ejercicio

Sé que un tema sobre esta misma pregunta ya está abierta, pero no ha tenido solución.

El ejercicio del video titulado Mi primer scraping esta realizado con otra página web, la cual posee detalles de url distintos a los que se presentan en la nueva página, por lo tanto, el aprendizaje es totalmente inútil ya que las formas de buscar no son las mismas.

Al respecto, mis dudas son respecto al código

from bs4 import BeautifulSoup
from urllib.request import urlopen
import pandas as pd

url = "https://alura-latam-webscraping.website3.me/"

response = urlopen(url)
html = response.read()
html

soup = BeautifulSoup(html, "html.parser")
soup.find("h2", class_="hello-world").get_text()

Siguiendo las directrices del video, me da el siguiente error:

Error 1

Luego, una de las instructoras dio el siguiente código:

from bs4 import BeautifulSoup
import requests

url = "http://alura-latam-webscraping.website3.me/"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

hello_world = soup.find("h2", class_="hello-world").get_text()
print(hello_world)

El cual da el siguiente error: Error 2

Respecto a esto, mis preguntas son las siguientes:

  1. ¿Cuáles son los errores que se comenten en ambos casos?
  2. ¿Qué se debe modificar?
  3. ¿Dónde puedo leer para entender respecto a las variables que se consideran en estas librerias?

Quedo atento.

Saludos.

2 respuestas
solución!

Hola Andrés,

Entiendo que estás enfrentando algunos inconvenientes con el ejercicio de web scraping del curso, y es totalmente normal que estos errores aparezcan cuando estamos aprendiendo. Estoy aquí para ayudarte a resolverlos paso a paso.

El error que estás viendo probablemente se debe a que el código está intentando encontrar un elemento con la clase "hello-world", pero este no existe en el HTML de la página. Esto puede suceder si la estructura de la página ha cambiado o si estamos buscando la clase incorrecta.

Te recomiendo revisar la estructura del HTML de la página para asegurarte de que estás buscando el elemento correcto. Para esto, puedes usar herramientas de desarrollo en tu navegador (por ejemplo, haciendo clic derecho sobre el elemento en la página y seleccionando "Inspeccionar").

La imagen que compartiste muestra que la clase que deberías usar es "bb-font-h2". Así que, corrigiendo tu código, quedaría de la siguiente forma:

from bs4 import BeautifulSoup
from urllib.request import urlopen

url = "https://alura-latam-webscraping.website3.me/"

response = urlopen(url)
html = response.read()

soup = BeautifulSoup(html, "html.parser")
texto = soup.find("h2", class_="bb-font-h2").get_text()

print(texto)

Con esta versión, el código debería encontrar el elemento correcto y extraer el texto que buscas. Si llegas a tener problemas con otras páginas, verifica siempre que estás buscando la clase o el elemento adecuado.

Finalmente, si te interesa profundizar en cómo funcionan las librerías que estás utilizando, te recomiendo revisar la documentación oficial de BeautifulSoup y requests, donde explican a detalle las funciones y variables que puedes utilizar.

Espero que esta explicación te ayude a resolver tu duda. ¡Sigue adelante con el curso y no dudes en escribirme si necesitas más asistencia!

Te mando un saludo y mis mejores deseos en tus estudios.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!

Estimada Ingrid

Muchas gracias por la aclaración y la corrección del problema!