Buenas, estoy intentando replicar este ejemplo de GitHub, pero me salen dos errores y no consigo solucionarlo, me pasa desde tres ordenadores distintos y se supone que funciona a la perfección. Lo errores son estos:
line 955, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed
y
line 1351, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 11001] getaddrinfo failed>
El enlace del ejemplo completo es este:
Descargo el contenido completo en una carpeta y ejecuto example.py
El código de ese módulo principal es:
from ESIOS import *
from matplotlib import pyplot as plt
import urllib #lo he añadido yo
from urllib.request import urlopen #lo he añadido yo
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
if __name__ == '__main__':
# Request arguments
end_ = datetime.datetime.today()
start_ = end_ - datetime.timedelta(days=30)
# The token is unique: You should ask for yours to: Consultas Sios <consultasios@ree.es>
token = '615e6d8c80629b8eef25c8f3d0c36094e23db4ed50ce5458f3462129d7c46dba'
esios = ESIOS(token)
# esios.save_indicators_table()
# indicators_ = [600, 672, 673, 674, 675, 676, 677, 680, 681, 682, 683, 767, 1192, 1193, 1293]
indicators_ = list()
# indicators_.append(682) # Precio de Regulación Secundaria subir
# indicators_.append(683) # Precio de Regulación Secundaria bajar
indicators_.append(600) # Precio mercado SPOT Diario
# indicators_.append(1293) # Demanda real
indicators_.append(551) # Eólica T.Real
# names = esios.get_names(indicators_)
df_list, names = esios.get_multiple_series(indicators_, start_, end_)
df_merged = esios.merge_series(df_list, names) # merge the DataFrames into a single one
df = df_merged[names] # get the actual series and neglect the rest of the info
# plot
fig, ax1 = plt.subplots()
df[names[0]].plot(ax=ax1) # demand
ax1.set_xlabel('time')
ax1.set_ylabel('MW')
# secondary axis
ax2 = ax1.twinx()
df[names[0::]].plot(ax=ax2) # others
ax2.set_ylabel('€')
plt.show()
Y el error que arroja es este, alguna idea de cómo solucionarlo?? he probado todo lo que he visto por google sin éxito, gracias!:
Getting the indicators…
Parsing Precio mercado SPOT Diario
Traceback (most recent call last):
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\urllib\request.py”, line 1348, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\http\client.py”, line 1276, in request
self._send_request(method, url, body, headers, encode_chunked)
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\http\client.py”, line 1322, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\http\client.py”, line 1271, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\http\client.py”, line 1031, in _send_output
self.send(msg)
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\http\client.py”, line 969, in send
self.connect()
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\http\client.py”, line 1441, in connect
super().connect()
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\http\client.py”, line 940, in connect
self.sock = self._create_connection(
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\socket.py”, line 824, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\socket.py”, line 955, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “c:\Users\miusuario\Downloads\ESIOS-master\ESIOS-master\example.py”, line 44, in
df_list, names = esios.get_multiple_series(indicators_, start_, end_)
File “c:\Users\miusuario\Downloads\ESIOS-master\ESIOS-master\ESIOS.py”, line 284, in get_multiple_series
df_new = self.get_data(indicator, start, end)
File “c:\Users\miusuario\Downloads\ESIOS-master\ESIOS-master\ESIOS.py”, line 238, in get_data
result = self.get_query_json(indicator, start_str, end_str)
File “c:\Users\miusuario\Downloads\ESIOS-master\ESIOS-master\ESIOS.py”, line 206, in get_query_json
with urllib.request.urlopen(req) as response:
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\urllib\request.py”, line 216, in urlopen
return opener.open(url, data, timeout)
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\urllib\request.py”, line 519, in open
response = self._open(req, data)
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\urllib\request.py”, line 536, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\urllib\request.py”, line 496, in _call_chain
result = func(*args)
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\urllib\request.py”, line 1391, in https_open
return self.do_open(http.client.HTTPSConnection, req,
File “C:\Users\miusuario\AppData\Local\Programs\Python\Python310\lib\urllib\request.py”, line 1351, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 11001] getaddrinfo failed>