urllib error on urlopen

M

Mike Driscoll

Hi,

I have been using the following code for over a year in one of my
programs:

f = urllib2.urlopen('https://www.companywebsite.com/somestring')

It worked great until the middle of the afternoon yesterday. Now I get
the following traceback:

Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
response = urllib2.urlopen(req).read().strip()
File "c:\python25\lib\urllib2.py", line 124, in urlopen
return _opener.open(url, data)
File "c:\python25\lib\urllib2.py", line 381, in open
response = self._open(req, data)
File "c:\python25\lib\urllib2.py", line 399, in _open
'_open', req)
File "c:\python25\lib\urllib2.py", line 360, in _call_chain
result = func(*args)
File "c:\python25\lib\urllib2.py", line 1115, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File "c:\python25\lib\urllib2.py", line 1082, in do_open
raise URLError(err)
URLError: <urlopen error (1, 'error:140770FC:SSL
routines:SSL23_GET_SERVER_HELLO:unknown protocol')>


I tried my Google Fu on this error, but there's not much out there. I
tried using a proxy in Python, but that returned the same traceback.
If I copy the URL into my browser, it resolves correctly. Does anyone
have any advice on how to troubleshoot this error?

I am using Python 2.5.2 on Windows XP.

Thanks,

Mike
 
M

Michael Palmer

Hi,

I have been using the following code for over a year in one of my
programs:

f = urllib2.urlopen('https://www.companywebsite.com/somestring')

It worked great until the middle of the afternoon yesterday. Now I get
the following traceback:

Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
response = urllib2.urlopen(req).read().strip()
File "c:\python25\lib\urllib2.py", line 124, in urlopen
return _opener.open(url, data)
File "c:\python25\lib\urllib2.py", line 381, in open
response = self._open(req, data)
File "c:\python25\lib\urllib2.py", line 399, in _open
'_open', req)
File "c:\python25\lib\urllib2.py", line 360, in _call_chain
result = func(*args)
File "c:\python25\lib\urllib2.py", line 1115, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File "c:\python25\lib\urllib2.py", line 1082, in do_open
raise URLError(err)
URLError: <urlopen error (1, 'error:140770FC:SSL
routines:SSL23_GET_SERVER_HELLO:unknown protocol')>

I tried my Google Fu on this error, but there's not much out there. I
tried using a proxy in Python, but that returned the same traceback.
If I copy the URL into my browser, it resolves correctly. Does anyone
have any advice on how to troubleshoot this error?

I am using Python 2.5.2 on Windows XP.

Thanks,

Mike

Could it just be a misconfiguration at the other end? Can you open
other https urls?
 
S

Steven D'Aprano

Hi,

I have been using the following code for over a year in one of my
programs:

f = urllib2.urlopen('https://www.companywebsite.com/somestring')

It worked great until the middle of the afternoon yesterday. Now I get
the following traceback: ....
URLError: <urlopen error (1, 'error:140770FC:SSL
routines:SSL23_GET_SERVER_HELLO:unknown protocol')>

Have you recently set a proxy where Python can auto-detect it? I
understand that urllib2 doesn't work well with https proxies.

If so, you can instruct urllib2 not to use a proxy-handler, but it's more
work. What I do is construct an opener without a proxyhandler:


# untested...
no_proxy_support = urllib2.ProxyHandler({})
opener = urllib2.build_opener(no_proxy_support)
f = opener.open('https://www.companywebsite.com/somestring')


If that doesn't work, you may need to build a Request object from the URL
before passing it to opener.open.
 
M

Mike Driscoll

Could it just be a misconfiguration at the other end? Can you open
other https urls?

This is really weird. Now it works this morning. I've spoken with our
webmaster/system admin and he said he didn't change anything on his
end. We're both befuddled. Sorry for the noise.

Mike
 
M

Mike Driscoll

Have you recently set a proxy where Python can auto-detect it? I
understand that urllib2 doesn't work well with https proxies.

If so, you can instruct urllib2 not to use a proxy-handler, but it's more
work. What I do is construct an opener without a proxyhandler:

# untested...
no_proxy_support = urllib2.ProxyHandler({})
opener = urllib2.build_opener(no_proxy_support)
f = opener.open('https://www.companywebsite.com/somestring')

If that doesn't work, you may need to build a Request object from the URL
before passing it to opener.open.

As I mentioned to Mr. Palmer, the error has mysteriously gone away
this morning. I'll keep your advice handy though, in case it happens
again.

Thanks,

Mike
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,534
Members
45,007
Latest member
obedient dusk

Latest Threads

Top