Python 3.2 - cookielib

Sta*_*tan 25 python python-3.x

我有2.7代码,但3.2中没有cookielib和urllib2这样的东西?如何让这段代码在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
Run Code Online (Sandbox Code Playgroud)

Dmi*_* B. 36

来自Python文档:

注意在Python 3.0中,cookielib模块已重命名为http.cookiejar.将源转换为3.0时,2to3工具将自动调整导入.

这不是一个可接受的解决方案?如果没有,为什么?


And*_*den 15

如上所述,cookielib已重命名,对python 2和3使用以下代码段:

try:
    from http.cookiejar import CookieJar
except ImportError:
    from cookielib import CookieJar
Run Code Online (Sandbox Code Playgroud)


小智 8

一线回答,将解决您的问题。

import http.cookiejar as cookielib

对于python3。无需更改代码中cookielib的出现。


小智 6

在Python 3.2中,urllib2重命名为urllib.request,而cookielib重命名为http.cookiejar。因此,您将其重命名为urllib.request和http.cookijar