urllib.py не работает с https? - PullRequest
4 голосов
/ 19 сентября 2010

В своем приложении на Python я пытаюсь открыть URL-адрес 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 ]

6 голосов
/ 31 мая 2011

Для поддержки SSL вам необходимо скомпилировать Python с OpenSSL . Например, в Ubuntu lucid вы должны установить модуль libcurl4-openssl-dev, а затем пересобрать Python.

3 голосов
/ 19 сентября 2010

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)
1 голос
/ 04 ноября 2010

Попробуйте использовать urllib2 .

У меня была такая же проблема с urllib на OSX 10.6 при использовании python 2.6.6 из macports.Переход на urllib2 исправил это.

...