elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Problema con Python y SSL [RESUELTO]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con Python y SSL [RESUELTO]  (Leído 4,829 veces)
NikNitro!


Desconectado Desconectado

Mensajes: 1.309


Galletaaa!!!


Ver Perfil WWW
Problema con Python y SSL [RESUELTO]
« en: 5 Julio 2017, 21:46 pm »

Buenas gente. Estoy haciendo un pequeño script para obtener la temperatura en España de cada dia durante el año pasado. Estoy usando la web de AEMET que trae una API bastante buena pero no consigo ejecutar ni siquiera el ejemplo que ponen.
Link del ejemplo
Link de la web de la API de AEMET

El ejemplo de uso que estoy intentando ejecutar es el siguiente:
Código
  1. import requests
  2.  
  3. url = "https://opendata.aemet.es/opendata/api/valores/climatologicos/inventarioestaciones/todasestaciones/"
  4.  
  5. querystring = {"api_key":"xxxxxxxxxxxxxxxxxxxxxxx"}
  6.  
  7. headers = {
  8.    'cache-control': "no-cache"
  9.    }
  10.  
  11. response = requests.request("GET", url, headers=headers, params=querystring)
  12.  
  13. print(response.text)

Bueno, el error que me da dice tal que así:
Código:
C:\Users\NikNitro\Desktop>python test.py
Traceback (most recent call last):
  File "test.py", line 29, in <module>
    response = requests.request("GET", url, headers=headers, params=querystring)
  File "C:\Python27\lib\site-packages\requests\api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 502, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 612, in send
    r = adapter.send(request, **kwargs)
  File "C:\Python27\lib\site-packages\requests\adapters.py", line 514, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)

Estoy usando Windows 10.
En cuanto a soluciones he visto el poner verify=False, pero no me deja acceder así porque es necesario ssl.
A True me da el mismo error y, según he visto en la red, debería poner una ruta a un certificado.
En windows no he encontrado la carpeta donde están, solo el administrador así que he descargado uno de GoDaddy, he puesto la ruta y... el mismo error.

Ya no sé qué más probar. Qué me recomendáis?

Gracias;)


« Última modificación: 6 Julio 2017, 15:49 pm por NikNitro! » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Problema con Python y SSL
« Respuesta #1 en: 5 Julio 2017, 22:14 pm »

Citar
En cuanto a soluciones he visto el poner verify=False, pero no me deja acceder así porque es necesario ssl.

es raro, porque esta opción no descarta el certificado, solo ignora las advertencias de su validez y sigue usandolo...

probando verify=True, funciona bien, aunque da una alerta de inseguridad... puedes hacer esto que es lo mismo y te ahorras la alerta

Código
  1. import urllib, urllib2, ssl
  2.  
  3. url = "https://opendata.aemet.es/opendata/api/valores/climatologicos/inventarioestaciones/todasestaciones/"
  4.  
  5. querystring = {"api_key":"xxxxxxxxxxxxxxxxxxxxxxx"}
  6.  
  7. data = urllib.urlencode(querystring)
  8. context = ssl._create_unverified_context()
  9. try:
  10. req = urllib2.urlopen(url+"?"+data, context=context)
  11. response = urllib2.urlopen(req)
  12. print response.read()
  13.  
  14. except urllib2.HTTPError, e:
  15. print e.code, e.reason
  16.  


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
NikNitro!


Desconectado Desconectado

Mensajes: 1.309


Galletaaa!!!


Ver Perfil WWW
Re: Problema con Python y SSL
« Respuesta #2 en: 5 Julio 2017, 22:48 pm »

D'accord, lo conseguí. Muchas gracias Engel Lex :)

Como aporte decir que de primeras da error en la línea 11 porque (según he entendido) req es ya una url abierta.
El cambio sería unicamente no hacer la línea 11 e imprimir req.read().

Gracias de nuevo.
Saludos;)
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Problema con Python y SSL
« Respuesta #3 en: 5 Julio 2017, 22:59 pm »

ups! jjejeje tienes razón se me pasó XD lo hice brevemente de copia de otros codigos y lo armé aśi sin querer
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Expresiones regulares --->(Python)[Resuelto]
Scripting
¨°o.O (ßa¢Kg|姧) O.o° 2 4,629 Último mensaje 29 Marzo 2010, 02:21 am
por Novlucker
[Resuelto] input de Python en C++?
Programación C/C++
Br1ant 7 3,909 Último mensaje 28 Junio 2015, 19:31 pm
por Br1ant
Problema con comentar bloques en Python 3 (Resuelto)
Scripting
lucas25cba 4 4,123 Último mensaje 28 Octubre 2015, 14:59 pm
por Pablo Videla
[Python 3] caracteres de escape (Resuelto)
Scripting
JS3 0 2,533 Último mensaje 13 Enero 2017, 05:27 am
por JS3
Python y Pandas [RESUELTO]
Scripting
deleted_account 1 2,577 Último mensaje 15 Diciembre 2017, 05:06 am
por tincopasan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines