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)
5
respuestas

Me indica "HTTP Error 403: Forbidden"

Al introducir el siguiente código:

df_html = pd.read_html('https://www.federalreserve.gov/releases/h3/current/default.htm')
len(df_html)

me aparece el siguiente mensaje: Mensaje de error desplegado por led(df_html)

Será que la web ya no permite descargar el contenido?

Saludos

5 respuestas

Hola Alumno, espero que estés bien

El error informa que está prohibido leer la página HTML, pero puede ver la página tranquilamente, ¿verdad? Esto se debe a que la lectura a través de pandas, de esta manera, no se realiza a través del navegador y si por el codigo, por lo que la página se bloquea naturalmente.

Cuando esto sucede, la sugerencia es usar la biblioteca de python llamada Requests para realizar una solicitud para esta URL y así pude obtener los datos de la URL.

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

Hola, tuve el mismo problema como sería para poder solicitar usando Request y que luego pueda generar un DataFrame como en el ejemplo que da el profesor?

import requests

res = requests.get('https://www.federalreserve.gov/releases/h3/current/default.htm')

if res: print('Response OK') else: print('Response Failed')

Con esto me devuelve un boolean que uso para verificar que la solicitud fue recibida pero no se como usar esto para obtener los datos y generar el dataframe.

Bueno, tienes la respuesta de la solicitud, en este caso, si la respuesta devuelve un valor de estado de 200, ¡significa que la solicitud fue exitosa!

Esta respuesta no solo devuelve este estado, también tiene un atributo 'texto' que tiene el contenido de la página solicitada, en este caso si usamos res.text tendremos el contenido - en html - de la página web, con esto es posible transformarlo en un DataFrame usando la conversión de html para DF que, incluso, es uno de los ejemplos mostrados por el profesor en clase, ¿sí?

Dime si tuviste éxito!

solución!

Gracias, si ya lo prove y funciono, dejo enseguida mi código:

import requests
r = requests.get('https://www.federalreserve.gov/releases/h3/current/default.htm')
r.status_code

este en mi caso efectivamente indica 200

a continuación r.text lo sustituyo en el método indicado en la clase

df_html = pd.read_html(r.text)
df_html[0]

y funciona correctamente.

Saludos

Gracias Brenda y al alumno que compartió el código de la solución. Lo probe y me funciono perfectamente. Saludos.