作者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
→ suzuke:先說你是在哪個系統做吧? windows or linux 11/01 00:19
推 KSJ:推樓上XD 11/01 00:26
→ pm2002:應該是windows吧,cmd下unicode會是亂碼沒錯 11/01 02:21
不好意思忘記講 我是用windows XP
python 2.5
推 cobrasgo:我猜是text editor的關係 11/01 03:47
我是用notepad++ 請問text editor如何影響這部份呢?
推 NolandTA:先encode成latin再decode成cp950試試看 11/01 10:40
不行耶 用latin去encode會失敗
※ 編輯: poopoo888888 來自: 218.166.198.127 (11/01 19:24)
→ KSJ:我用WINDOW7 Python2.5.4 urllib2 在cmd下正常 idle下亂碼 11/01 21:57
→ KSJ:可是decode("big5","ignore") 就可以了 你要不要試試? 11/01 21:58
→ KSJ:再問一下 是只要是中文都亂碼?? 11/01 22:10
很謝謝你 但出來還是亂碼耶
只有抓這個網頁是亂碼 其他地方的中文都沒問題
※ 編輯: poopoo888888 來自: 61.231.27.37 (11/02 19:10)
→ cobrasgo:source code貼出來,你的環境寫清楚,有時間的話幫你試.. 11/03 05:00
→ buganini:latin -> 是latin1吧 11/03 10:21