urllib.py无法使用https?

时间:2010-09-19 18:58:48

标签: python google-app-engine url urllib

在我的python应用程序中,我尝试打开https网址,但我得到:

 File "C:\Python26\lib\urllib.py", line 215, in open_unknown
    raise IOError, ('url error', 'unknown url type', type)
IOError: [Errno url error] unknown url type: 'https'

我的代码:

import urllib
def generate_embedded_doc(doc_id):
    url = "https://docs.google.com/document/ub?id=" + doc_id + "&embedded=true"
    src = urllib.urlopen(url).read()
    ...
    return src

3 个答案:

答案 0 :(得分:6)

要获得SSL支持,您需要使用OpenSSL编译Python。 例如,在ubuntu lucid下你必须安装模块libcurl4-openssl-dev然后重新构建Python。

答案 1 :(得分:3)

urllib和Python 2.6有SSL支持,您的代码示例对我来说很好。可能你的Python是在没有SSL支持的情况下构建的?尝试重新安装Python 2.6(或更好,2.7)并使用python.org中的原始版本。

在Google App Engine上,尝试直接使用API​​:

from google.appengine.api import urlfetch

url = "https://www.google.com/"
result = urlfetch.fetch(url)
if result.status_code == 200:
  doSomethingWithResult(result.content)

答案 2 :(得分:1)

请尝试使用urllib2

我使用macports的python 2.6.6在OSX 10.6上遇到了与urllib相同的问题。切换到urllib2修复它。