
1 westy 2012 年 6 月 20 日 百度的页面是编码的貌似。 |
3 hiwljun 2012 年 6 月 20 日 试试用: respOnse= urllib2.urlopen('http://www.baidu.com').encode('') |
5 yangg 2012 年 6 月 20 日 html = response.read().decode(''); |
9 alai 2012 年 6 月 20 日 2009-04-15 关于抓取中文页面的一点小总结 - [python] 说起来简单,但也是经过好几个项目,来来回回出问题得出来的。 +最终转成UTF8输出是毋庸置疑的。 +抓的如果是中文页面的话,用GB18030来decode是比较正统的方法,是一个误区,其实我们的页面中使用的字符编码已经早就超出2312的那些了。 +明明是中文页面抓回来却没法用18030来decode的话,一般是因为页面中混杂了非法字符的原因,可以用ignore忽略掉非法字符。 |
10 alafeizai 2012 年 6 月 20 日 ignore正解 |
11 liuxurong OP UnicodeEncodeError: 'gbk' codec can't encode character '\xa9' in position 26408: illegal multibyte sequence |
12 c 2012 年 6 月 20 日 这年代了还用urllib2呀。 用requests吧,结果自动解码成unicode >>> import requests >>> r = requests.get('http://www.baidu.com') >>> r.text .... >>> type(r.text) <type 'unicode'> |
13 c 2012 年 6 月 20 日 BF也过时了,用pyquery吧。 >>> from pyquery import PyQuery as pq >>> html = pq(r.text) >>> print html('title').text() 百度一下,你就知道 |
15 tuoxie007 2012 年 6 月 20 日 |
16 clowwindy 2012 年 6 月 20 日 因为是 encode error,所以楼主是 print 的时候挂掉的,并且楼主一定在用简体中文 windows 解决方法就是改用 Cygwin,远离傻逼 windows 终端 |
18 INT21H 2012 年 6 月 20 日 慢慢的就会发现BS的效率太低了,最后走上了re的不归路 =。= |
19 ling0322 2012 年 6 月 20 日 这个和控制台的编码(默认是GBK)有关吧, 在IDLE中运行没有问题 |
22 lddhbu 2013 年 4 月 19 日 解决了我的问题 |