Python 2到Python 3 http请求的转换

时间:2013-05-31 18:12:13

标签: python http python-3.x python-2.x python-3.3

我是Python新手。我试图将Python 2代码转换为Python 3.在我的旧代码中,我有以下几行:

# Create a cookiejar to store cookie
cj = cookielib.CookieJar()
# Create opener
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [('User-agent', 'Mozilla/5.0')]

我已将这些行转换为:

# Create a cookiejar to store cookie
cj = cookielib.CookieJar()
# Create opener
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
opener.addheaders = [('User-agent', 'Mozilla/5.0')]

我遇到的问题是我一直收到以下错误: NameError:全局名称' cookielib'未定义

我不确定我做错了什么以及如何解决这个问题。有人可以帮帮我吗?非常感谢你。

3 个答案:

答案 0 :(得分:1)

您是否使用2to3工具?另外,使用Python Docs,

  

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

看到您的评论后,问题是它是http.cookiejar而不是http.cookieJar

请注意未获取资格的J.

答案 1 :(得分:0)

我想我有解决方案。以下似乎有效: cj = http.cookiejar.CookieJar()

答案 2 :(得分:0)

在{strong> Python 3 中,库cookielib模块已重命名为http.cookiejar,请参见https://docs.python.org/2/library/cookielib.html

您可以使用2to3工具将源代码转换为Python 3,请参见https://docs.python.org/2/library/2to3.html