Re: [問題] 一個抓資料的問題

看板Python作者 (阿川)時間14年前 (2011/11/03 08:40), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串3/4 (看更多)
: cmd是指黑底的嗎?? 黑底的應該比較容易正常說 雖然都轉成unicode就沒事了 : 我測試直接urllib2抓網頁 有下面的結果 : http://dl.dropbox.com/u/24628527/TEST.PNG
: 用unicode來看都還蠻正常的 ( 用str不正常就不提了... windows oooos) : 然後我也用了re (想學一直沒空 我抄你的程式碼) 有以下的結果 : http://dl.dropbox.com/u/24628527/test2.PNG
: 當然在黑底的cmd也是沒問題 : 上面是在 windows xp : python 2.5.4 測試的 : 蠻好奇你怎麼抓不出來@_@a 謝謝各位大大的幫忙! 我學KSJ大直接用re去處理fetch到的網頁原始碼 甚至不需要decode就可以正確顯示那些中文字 response = urllib.urlopen(url) page = response.read() number = re.findall(u"frmlist.no.value='(.+)';frmlist.foreigner.value", page) for n in number: print n (其實這邊我滿疑惑的 我沒做decode 表示收到的是網頁原始的big5編碼資料  在windows XP用cp950編碼的cmd模式下為什麼可以正確顯示?) 至於我用BeautifulSoup先parse再做re而遇到的問題 則出在這裡: page = response.read() u_page = page.decode('big5') tags = BeautifulSoup(u_page).findAll('a') 這樣decode時會出錯 改成u_page = page.decode('big5', 'ignore')就可以了 但我卻有了新的疑問 為什麼要加上'ignore'參數? 是叫它忽略掉看不懂的byte嗎 又為什麼會有看不懂的byte呢 是因為big5看不懂某些中文字嗎? 不好意思 新手上路 問題有點多 謝謝大家 P.S. KSJ大 我找到一份不錯的學re資源跟您分享 http://www.diveintopython.net/regular_expressions/index.html -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.166.194.46 ※ 編輯: poopoo888888 來自: 218.166.194.46 (11/03 08:46)

11/03 10:22, , 1F
因為big5差不多就是cp950 所以cmd當然可以顯示
11/03 10:22, 1F

11/03 10:23, , 2F
decode失敗可能是因為裡面有unicode at once之類的東西
11/03 10:23, 2F

11/03 10:23, , 3F
big5版本一大堆 http://moztw.org/docs/big5/
11/03 10:23, 3F

11/03 10:24, , 4F
用到不同的就有可能出錯
11/03 10:24, 4F

11/03 13:25, , 5F
原來是這樣!! 謝謝您!!
11/03 13:25, 5F
文章代碼(AID): #1EiUBw3A (Python)
討論串 (同標題文章)
文章代碼(AID): #1EiUBw3A (Python)