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