s******u 发帖数: 247 | 1 比如这个mitbbs的网页,我怎么print都是乱码呢?
谁给指点一下?谢谢。代码如下:
import os
import sys
import urllib2
import cookielib
import codecs
url= 'http://www.mitbbs.com/article_t/Programming/31237353.html'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
# add a fake UA
opener.addheaders = [('User-Agent', 'Mozilla/5.0 (compatible; MSIE 9
.0; Windows NT 6.1; Trident/5.0)')]
urllib2.install_opener(opener)
request = urllib2.Request(url)
response = opener.open(request).read()
print response.decode('utf-8').encode('gb2312') |
l********a 发帖数: 1154 | |
s******u 发帖数: 247 | 3 I use spyder.It printed corrupted characters.
What compiler do you use?
Thanks. |
c*****m 发帖数: 1160 | 4
连我这个python新手都能看出来你用的是python2。我猜更新到最新的python 版本就能
解决了。
【在 s******u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 比如这个mitbbs的网页,我怎么print都是乱码呢? : 谁给指点一下?谢谢。代码如下: : import os : import sys : import urllib2 : import cookielib : import codecs : url= 'http://www.mitbbs.com/article_t/Programming/31237353.html' : cj = cookielib.CookieJar() : opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
|
z*******h 发帖数: 346 | 5 import os
import sys
import urllib2
import cookielib
import codecs
url= 'http://www.mitbbs.com/bbsdoc/Programming.html'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
# add a fake UA
opener.addheaders = [('User-Agent', 'Mozilla/5.0 (compatible; MSIE 9.0;
Windows NT 6.1; Trident/5.0)')]
urllib2.install_opener(opener)
request = urllib2.Request(url)
response = opener.open(request).read()
print unicode(response, encoding = 'gb18030')
works on iTerm on Mac.
【在 s******u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 比如这个mitbbs的网页,我怎么print都是乱码呢? : 谁给指点一下?谢谢。代码如下: : import os : import sys : import urllib2 : import cookielib : import codecs : url= 'http://www.mitbbs.com/article_t/Programming/31237353.html' : cj = cookielib.CookieJar() : opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
|
p***o 发帖数: 1252 | 6
mit是用gb2312编码的,你拿utf-8解码可不都是乱码么 ...
改成 print response.decode('gb2312').encode('utf-8') 再说
【在 s******u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 比如这个mitbbs的网页,我怎么print都是乱码呢? : 谁给指点一下?谢谢。代码如下: : import os : import sys : import urllib2 : import cookielib : import codecs : url= 'http://www.mitbbs.com/article_t/Programming/31237353.html' : cj = cookielib.CookieJar() : opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
|
p***o 发帖数: 1252 | 7 python2要连这都干不了还是别混了。
【在 c*****m 的大作中提到】![](/moin_static193/solenoid/img/up.png) : : 连我这个python新手都能看出来你用的是python2。我猜更新到最新的python 版本就能 : 解决了。
|
d********g 发帖数: 10550 | 8 确实新手,鉴定完毕
【在 c*****m 的大作中提到】![](/moin_static193/solenoid/img/up.png) : : 连我这个python新手都能看出来你用的是python2。我猜更新到最新的python 版本就能 : 解决了。
|
s******u 发帖数: 247 | |
c*****m 发帖数: 1160 | 10
在这里的都是程序员。设身处地地想想:如果你做了一个软件,然后发现了bug,然后
你出了新版本修复了这个bug和其他bugs。现在别人不断地问你旧版本上面的bug怎样才
能绕过去,你烦不烦?你说,用新版本就可以了,可是还是有那么多人一定要用有bug
的旧版本,还不断问问题,你说讨厌不讨厌?
XP+IE6上面很多漏洞,人家微软都出了3个版本了(vista/win7/win8, IE7/8/9/10),
还有那么多人用旧版本,还要经常骂微软的软件漏洞多,我都替微软着急。
【在 d********g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 确实新手,鉴定完毕
|
s******u 发帖数: 247 | 11 很多东西用旧的,是因为旧的兼容性好啊。等我在新的版本上运行一下试试。 |
l********a 发帖数: 1154 | 12
python就直接IDLE啦,自带的,好使.
【在 s******u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : I use spyder.It printed corrupted characters. : What compiler do you use? : Thanks.
|
c*****m 发帖数: 1160 | 13
用 python3,程序修改成:
import os
import sys
import urllib
import http.cookiejar
import codecs
url= 'http://www.mitbbs.com/article/Programming/31238113_0.html'
cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
# add a fake UA
opener.addheaders = [('User-Agent', 'Mozilla/5.0 (compatible; MSIE 9.0;
Windows NT 6.1; Trident/5.0)')]
urllib.request.install_opener(opener)
request = urllib.request.Request(url)
response = opener.open(request).read()
print(response.decode("gb2312"))
其实就是最后一行,是你需要修改的。其它改动都是针对 py2=>py3 的。
执行后python shell上面直接看见中文。
【在 s******u 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 很多东西用旧的,是因为旧的兼容性好啊。等我在新的版本上运行一下试试。
|