Python 3.2 - cookielib

39

我有一份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

2
http://python3porting.com/stdlib.html - Lennart Regebro
4个回答

48

来自Python文档:

注意 cookielib 模块在 Python 3.0 中已经更名为 http.cookiejar。2to3 工具会在将您的源代码转换为 3.0 版本时自动调整导入。

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


21

如上所述,cookielib已经更名,请使用以下代码片段适用于Python 2和3:

try:
    from http.cookiejar import CookieJar
except ImportError:
    from cookielib import CookieJar

18

一句话回答,解决您的问题。

import http.cookiejar as cookielib

对于Python3。 您的代码中不需要更改 cookielib 的出现。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接