Python 3.2 - cookielib库
我有一段在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
4 个回答
19
一句话就能解决你的问题。
import http.cookiejar as cookielib
这是针对Python 3的写法。你在代码中用到的cookielib不需要做任何修改。
21
如上所述,cookielib这个库已经改名了。你可以使用下面这段代码,它适用于Python 2和Python 3:
try:
from http.cookiejar import CookieJar
except ImportError:
from cookielib import CookieJar
49
来自 Python文档:
注意:在Python 3.0中,cookielib模块已经改名为http.cookiejar。当你使用2to3工具将你的代码转换为3.0版本时,它会自动调整导入的内容。
这不是一个可以接受的解决方案吗?如果不是,为什么呢?