2011-12-06 11 views
12

私は2.7のコードを使っていますが、3.2ではcookielibとurllib2のようなものはありませんか? 3.2でこのコードを動作させるにはどうすればよいですか?誰かが不思議に思うような場合 - 私はWindows上にいる。Python 3.2 - cookielib

Python docsから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

http://python3porting.com/stdlib.html –

答えて

23

:cookielibモジュールはPython 3.0 にhttp.cookiejarに名前が変更されました

注意。 2to3ツールは、ソースを3.0に変換するときに自動的にインポートを適用します。

これは許容できる解決策ではありませんか?そうでない場合、なぜですか? cookielib上述したように

7

は、Python 2と3の両方のための次のスニペットを使用して、名前が変更されました:Pythonの3.2

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

、urllib2のがurllib.request名前が変更され、そしてcookielibがhttp.cookiejar名前が変更されています。 urllib.requestとhttp.cookijarという名前に変更します。