有關Selenium抓取網頁資料變亂碼問題請教:
最近想寫一個抓取國旅卡所有店家資料
從官方網站http://travel.nccc.com.tw用Selenium及BS4抓取頁面資料
一開始先在Windows下編寫測試,可以正常抓取到資料顯示也正常
就把程式丟到Linux的機器執行
跑出來店家資料print出來卻顯示亂碼
程式執行畫面如下:
windows下執行顯示正常
https://i.imgur.com/oMu41oF.jpg
Linux下執行print變亂碼
https://imgur.com/kqiFtDR.jpg
看起來像是編碼問題(utf8 big5?)
查看Google後 試著用加上encode=big5 及encode=utf8
結果顯示的結果還是一樣亂碼無法正常秀出中文內容
嘗試用BS4把頁面整個抓取下來後寫到檔案
結果檔案內容: 前面網頁訊息中文正常, 後面店家資訊就顯示亂碼
畫面如下:
前面網頁訊息: https://imgur.com/c3ruZC5.jpg
後面店家資訊: https://i.imgur.com/IkP8GuW.jpg
想請教是否有版友遇過類似問題,想請教應如何解決此類問題
感謝指點~
作者:
shala (沙羅)
2019-01-27 19:05:00我沒改編碼但正確抓取並存檔。Windows環境。Linux靠其他人測試
我Windows環境下能正確抓取沒問題 但LINUX下就變亂碼
應該是console編碼的問題,其實Windows也有。
我在Linux底下直接寫入file 也是顯示出亂碼(如畫面)
作者:
s860134 (s860134)
2019-01-27 23:11:00encode decode 的老問題wait 你後面 "變亂碼" 根本不是亂碼看起來是沒抓到你要文本吧 option value.... 這不是亂碼.還是有程式碼給別人 debug 比較快
感謝樓上幾位版友建議 後來找出解決方式直接在file open加上encoding="utf-8" 即可顯示中文