Python 3.2 - cookielib
У меня есть рабочий код 2.7, однако в версии нет cookieib и urllib2 в 3.2? Как я могу заставить этот код работать с 3.2? Если кто-то задается вопросом - я нахожусь в Windows.
Пример 2.7
import urllib, urllib2, cookielib
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'login' : 'admin', 'pass' : '123'})
resp = opener.open('http://website/', login_data)
html = resp.read()
# I know that 3.2 is using print(), don't have to point that out.
print html
Ответы
Ответ 1
Из Документы Python:
Примечание. Модуль cookielib был переименован в http.cookiejar в Python 3.0. Инструмент 2to3 автоматически адаптирует импорт при конвертации ваших источников в 3.0.
Разве это не приемлемое решение? Если нет, то почему?
Ответ 2
Как упоминалось выше, cookielib был переименован, используйте следующий фрагмент для обоих python 2 и 3:
try:
from http.cookiejar import CookieJar
except ImportError:
from cookielib import CookieJar
Ответ 3
В Python 3.2 urllib2 переименован в urllib.request, а cookielib переименован в http.cookiejar. Таким образом, вы переименуете его как urllib.request и http.cookijar