作者poopoo888888 (阿川)
看板Python
标题[问题] 一个抓资料的问题
时间Tue Nov 1 00:01:46 2011
我现正在抓一个网页上的资料
http://service.moj.gov.tw/lawer/associList.asp?associName=%A5x%ABn%AB%DF%AEv%A4%BD%B7|
网页有大量像这样的原始码
<td width='16%'><font size='4' face='标楷体' color='#000080'>
<a href='data1.asp'
onclick="javascript:event.returnValue=false;frmlist.name.value='尤挹华
';frmlist.no.value='(81)台检证字第1951号
';frmlist.foreigner.value='';frmlist.action=this.href;frmlist.submit();"'>尤挹
华</a></font>
</td>
我的目标是把其中的「(81)台检证字第1951号」给抓出来
本以为用re会轻松解决 却怎麽抓都是乱码
我的code如下
tags = BeautifulSoup(page).findAll('a') #page为网页的source code
for tag in tags:
number = re.search("frmlist.no.value='(.+)';frmlist.foreigner.value",
str(tag)).group(1)
print number
在cmd下看到的都是乱码
无论用big5 utf-8 cp950去对number做decode或是encode都没用
想请问怎麽会这样呢?
是因为re无法处理中文吗?
烦请大大们解惑
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.231.27.129
1F:→ suzuke:先说你是在哪个系统做吧? windows or linux 11/01 00:19
2F:推 KSJ:推楼上XD 11/01 00:26
3F:→ pm2002:应该是windows吧,cmd下unicode会是乱码没错 11/01 02:21
不好意思忘记讲 我是用windows XP
python 2.5
4F:推 cobrasgo:我猜是text editor的关系 11/01 03:47
我是用notepad++ 请问text editor如何影响这部份呢?
5F:推 NolandTA:先encode成latin再decode成cp950试试看 11/01 10:40
不行耶 用latin去encode会失败
※ 编辑: poopoo888888 来自: 218.166.198.127 (11/01 19:24)
6F:→ KSJ:我用WINDOW7 Python2.5.4 urllib2 在cmd下正常 idle下乱码 11/01 21:57
7F:→ KSJ:可是decode("big5","ignore") 就可以了 你要不要试试? 11/01 21:58
8F:→ KSJ:再问一下 是只要是中文都乱码?? 11/01 22:10
很谢谢你 但出来还是乱码耶
只有抓这个网页是乱码 其他地方的中文都没问题
※ 编辑: poopoo888888 来自: 61.231.27.37 (11/02 19:10)
9F:→ cobrasgo:source code贴出来,你的环境写清楚,有时间的话帮你试.. 11/03 05:00
10F:→ buganini:latin -> 是latin1吧 11/03 10:21