I am trying to rerun the code I had written about 2 years ago but now it is not working. I am using python 3.7.1. The code snippet causing the problem is following
import ssl
import mechanize
import operator
try:
_create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
# Legacy Python that doesn't verify HTTPS certificates by default
pass
else:
# Handle target environment that doesn't support HTTPS verification
ssl._create_default_https_context = _create_unverified_https_context
ssl._DEFAULT_CIPHERS = ('DES-CBC3-SHA')
myBrowser = mechanize.Browser()
myBrowser.set_handle_robots(False)
myBrowser.set_handle_refresh(False)
myBrowser.open("https://uwp.puchd.ac.in/common/viewmarks.aspx")
This is causing an exception during the ssl handshake and showing only [Error 0]. The complete traceback is following-
Traceback (most recent call last):
File "/home/him/.local/lib/python3.7/site-packages/mechanize/_urllib2_fork.py", line 1179, in do_open
headers)
File "/home/him/anaconda3/lib/python3.7/http/client.py", line 1229, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/home/him/anaconda3/lib/python3.7/http/client.py", line 1275, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/home/him/anaconda3/lib/python3.7/http/client.py", line 1224, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/home/him/anaconda3/lib/python3.7/http/client.py", line 1016, in _send_output
self.send(msg)
File "/home/him/anaconda3/lib/python3.7/http/client.py", line 956, in send
self.connect()
File "/home/him/anaconda3/lib/python3.7/http/client.py", line 1392, in connect
server_hostname=server_hostname)
File "/home/him/anaconda3/lib/python3.7/ssl.py", line 412, in wrap_socket
session=session
File "/home/him/anaconda3/lib/python3.7/ssl.py", line 853, in _create
self.do_handshake()
File "/home/him/anaconda3/lib/python3.7/ssl.py", line 1117, in do_handshake
self._sslobj.do_handshake()
OSError: [Errno 0] Error
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "UIET Rank system.py", line 51, in <module>
myBrowser.open("https://uwp.puchd.ac.in/common/viewmarks.aspx")
File "/home/him/.local/lib/python3.7/site-packages/mechanize/_mechanize.py", line 253, in open
return self._mech_open(url_or_request, data, timeout=timeout)
File "/home/him/.local/lib/python3.7/site-packages/mechanize/_mechanize.py", line 283, in _mech_open
response = UserAgentBase.open(self, request, data)
File "/home/him/.local/lib/python3.7/site-packages/mechanize/_opener.py", line 193, in open
response = urlopen(self, req, data)
File "/home/him/.local/lib/python3.7/site-packages/mechanize/_urllib2_fork.py", line 375, in _open
'_open', req)
File "/home/him/.local/lib/python3.7/site-packages/mechanize/_urllib2_fork.py", line 363, in _call_chain
result = func(*args)
File "/home/him/.local/lib/python3.7/site-packages/mechanize/_urllib2_fork.py", line 1225, in https_open
return self.do_open(conn_factory, req)
File "/home/him/.local/lib/python3.7/site-packages/mechanize/_urllib2_fork.py", line 1182, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 0] Error>
Can you please explain what is the problem actually and how to resolve it?
Note- Kindly Visit this link which i am opening and check, it uses outdated ciphers probably and it always shows warning before proceeding.
While it is not fully clear which version of OpenSSL you use together with Python my guess is that it is OpenSSL 1.1.1 since this gets shipped with Anaconda Python 3.7. This version does not support DES-CBC3-SHA anymore, i.e. this cipher is considered weak and not compiled in. That's why ssl._DEFAULT_CIPHERS = ('DES-CBC3-SHA')
essentially sets the list of supported ciphers to none which makes the TLS handshake fail.
If you need this weak cipher than you need to go back to an older version of OpenSSL or recompile OpenSSL and Python with support for this weak cipher explicitly enabled.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With