Desde hace algunos días tengo un problema accesando a https://www.sicop-sep.hacienda.gob.mx/ por medio de python.
Busco obtener el código de retorno para saber si está o no funcionando, sin embargo, arroja un error y no tengo idea del por qué ocurre.
El código tiene una función que sigue los redireccionamientos y funciona bien con otras páginas https (probé https://www.eff.org/https-everywhere/ y https://www.cia.gov/kids-page/index.html), pero, en la que me marca error, no he tenido suerte. De hecho, sólo he podido entrar a la página usando Firefox 3.x.
¿Hay algo equivocado en el código o para ese tipo de páginas debería de usar algo más?
Agradecezco de antemano su tiempo.
Código:
Al ejecutar el código arroja lo siguiente:import urllib.request import http.client import urllib.parse from urllib.parse import urlparse def resolve_http_redirect(url, depth=0): if depth > 10: raise Exception("Redirected "+depth+" times, giving up.") o = urllib.parse.urlparse(url,allow_fragments=True) print(o) conn = http.client.HTTPSConnection(o.netloc) path = o.path print (path) if o.query: path +='?'+o.query conn.request("HEAD", path) res = conn.getresponse() headers = dict(res.getheaders()) if 'location' in headers and headers['location'] != url: return resolve_http_redirect(headers['location'], depth+1) else: return url url_https="https://www.sicop-sep.hacienda.gob.mx/" host = urlparse(url_https)[1] print(host) req = ''.join(urlparse(url_https)[2:]) print(req) conn = http.client.HTTPSConnection(host) conn.request('HEAD', req) resp = conn.getresponse() print(resp.status) print(resp.reason) print(" ") print(resp.msg) answer=resolve_http_redirect(url_https) print(answer)
Cita:
www.sicop-sep.hacienda.gob.mx
/
Traceback (most recent call last):
File "C:\PYTHONppg\prueba_https.py", line 40, in <mod
ule> conn.request('HEAD', req)
File "c:\Python32\lib\http\client.py", line 967, in request
self._send_request(method, url, body, headers)
File "c:\Python32\lib\http\client.py", line 1005, in _send_request
self.endheaders(body)
File "c:\Python32\lib\http\client.py", line 963, in endheaders
self._send_output(message_body)
File "c:\Python32\lib\http\client.py", line 808, in _send_output
self.send(msg)
File "c:\Python32\lib\http\client.py", line 746, in send
self.connect()
File "c:\Python32\lib\http\client.py", line 724, in connect
self.timeout, self.source_address)
File "c:\Python32\lib\socket.py", line 404, in create_connection
raise err
File "c:\Python32\lib\socket.py", line 395, in create_connection
sock.connect(sa)
socket.error: [Errno 10061] No connection could be made because the target machine actively refused
www.sicop-sep.hacienda.gob.mx
/
Traceback (most recent call last):
File "C:\PYTHONppg\prueba_https.py", line 40, in <mod
ule> conn.request('HEAD', req)
File "c:\Python32\lib\http\client.py", line 967, in request
self._send_request(method, url, body, headers)
File "c:\Python32\lib\http\client.py", line 1005, in _send_request
self.endheaders(body)
File "c:\Python32\lib\http\client.py", line 963, in endheaders
self._send_output(message_body)
File "c:\Python32\lib\http\client.py", line 808, in _send_output
self.send(msg)
File "c:\Python32\lib\http\client.py", line 746, in send
self.connect()
File "c:\Python32\lib\http\client.py", line 724, in connect
self.timeout, self.source_address)
File "c:\Python32\lib\socket.py", line 404, in create_connection
raise err
File "c:\Python32\lib\socket.py", line 395, in create_connection
sock.connect(sa)
socket.error: [Errno 10061] No connection could be made because the target machine actively refused