Python 2.5中的urllib或urllib2支持https吗?

2 投票
2 回答
5654 浏览
提问于 2025-04-15 22:56

谢谢你们的帮助。我有点困惑,为什么同样的代码在Python 2.6上能运行,但在2.5上却不行。以下是代码:

import cgi, urllib, urlparse, urllib2
url='https://graph.facebook.com'

req=urllib2.Request(url=url)
p=urllib2.urlopen(req)
response = cgi.parse_qs(p.read())

这是我遇到的错误信息:

Traceback (most recent call last):
  File "t2.py", line 6, in <module>
    p=urllib2.urlopen(req)
  File "/home/userx/lib/python2.5/urllib2.py", line 124, in urlopen
    return _opener.open(url, data)
  File "/home/userx/lib/python2.5/urllib2.py", line 381, in open
    response = self._open(req, data)
  File "/home/userx/lib/python2.5/urllib2.py", line 404, in _open
    'unknown_open', req)
  File "/home/userx/lib/python2.5/urllib2.py", line 360, in _call_chain
    result = func(*args)
  File "/home/userx/lib/python2.5/urllib2.py", line 1140, in unknown_open
    raise URLError('unknown url type: %s' % type)
urllib2.URLError: <urlopen error unknown url type: https>

再次感谢大家的帮助。

2 个回答

6

如果你看到

urllib2.URLError: <urlopen error unknown url type: https>

那么你需要安装openssl和libssl-dev,并且需要从源代码重新编译Python。

8

很可能你用的是2.5版本,因为这个版本在编译的时候没有加上ssl支持。

你可以试试这个:

>>> import socket
>>> socket.ssl
<function ssl at 0xb7ce602c>

用来检查一下是否有ssl支持(也就是说,你不会遇到AttributeError这个错误)

撰写回答