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:
Será que la web ya no permite descargar el contenido?
Saludos
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:
Será que la web ya no permite descargar el contenido?
Saludos
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.
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!
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.