可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
In my python app I try to open a https url, but I get:
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'
my code:
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
回答1:
urllib
and Python 2.6 have SSL support and your code example works fine for me. Probably your Python is built without SSL support? Try to reinstall Python 2.6 (or better, 2.7) and use the original build from python.org.
On Google App Engine, try to use the API directly:
from google.appengine.api import urlfetch url = "https://www.google.com/" result = urlfetch.fetch(url) if result.status_code == 200: doSomethingWithResult(result.content)
回答2:
To have SSL support you need to compile Python with OpenSSL. For example under ubuntu lucid you must install the module libcurl4-openssl-dev then re-build Python.
回答3:
Try using urllib2 instead.
I had the same issue with urllib on OSX 10.6 using python 2.6.6 from macports. Switching to urllib2 fixed it.