看板 Python 關於我們 聯絡資訊
我現正在抓一個網頁上的資料 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