作者elmo56 (政大柯景腾)
看板Python
标题[问题] 从网页抓资料,中文处理上的问题
时间Sat Oct 25 20:13:12 2014
我的python 是2.7版
是用beautifulsoup 去抓网页资料
抓到了table里面的值
例如 a[2]= <td> 雅虎新闻 Yahoo news </td>
a[3]= <td> 四 thr </td>
我也透过 a[2]=a[2].get_text()
把tag给去掉
只留下 text的部分
若我现在 print a[2],a[3]
结果: 雅虎新闻 Yahoo news 四 thr
但现在问题是
若我设一个 newslist=[]
再把 newslist.append(a[2])
newslist.append(a[3])
在print newslist
结果会变成 中文字是乱码
英文是正常的
单独印出那个位置的时候 正常
printf newslist[0] 会显示 雅虎新闻 Yahoo news
printf newslist 会变成 u'\u4eda\u623f\u4eds\ Yahoo news u'\u4dsw thr
上面编码是我乱打的但会是这样的情况
要印出整个list 或是dict 就会乱乱的
故发文求解惑
谢谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.119.164.134
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Python/M.1414239194.A.6AB.html
1F:→ alibuda174: 应该不会 你说的乱码是什麽? 10/25 20:53
※ 编辑: elmo56 (140.119.164.134), 10/25/2014 20:56:23
2F:→ alibuda174: 试试 print newslist[0] 10/25 20:54
※ 编辑: elmo56 (140.119.164.134), 10/25/2014 21:01:51
3F:→ alibuda174: 那个不是乱码 而是中文字元的unicode 10/25 21:09
4F:→ alibuda174: 改用python3的话 可能就会正常印出中文字 10/25 21:12
5F:→ elmo56: 谢谢解答,但若在python2.7下 你会有其他方式解决吗 10/25 21:19
6F:→ penguin7272: print " ".join(newslist) 10/25 22:01
7F:→ uranusjr: 推荐你这个好棒的 uniout 函式库 10/26 00:14
8F:→ elmo56: uniout OK,因为我未来还想搭配画图 10/26 01:10
9F:推 yauhh: 2.x版预设环境是ascii,档案开头加# -*- coding: utf-8 -*- 11/02 14:34
10F:→ yauhh: 可以正确显示. 假如是windows环境你自己找找看类似方案. 11/02 14:35