作者threeSecGun (三秒槍)
看板Python
標題[問題] Python Selenium抓國旅卡網站資訊亂碼
時間Sun Jan 27 17:44:51 2019
有關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
想請教是否有版友遇過類似問題,想請教應如何解決此類問題
感謝指點~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.213.204.25
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1548582294.A.347.html
→ f496328mm: 看了一下,店名用全形是哪招,低能政府 01/27 19:02
推 shala: 我沒改編碼但正確抓取並存檔。Windows環境。 01/27 19:05
推 shala: Linux靠其他人測試 01/27 19:27
→ threeSecGun: 我Windows環境下能正確抓取沒問題 但LINUX下就變亂碼 01/27 20:07
→ justoncetime: 應該是console編碼的問題,其實Windows也有。 01/27 20:28
→ threeSecGun: 我在Linux底下直接寫入file 也是顯示出亂碼(如畫面) 01/27 20:56
→ s860134: encode decode 的老問題 01/27 23:11
→ s860134: wait 你後面 "變亂碼" 根本不是亂碼 01/27 23:13
→ s860134: 看起來是沒抓到你要文本吧 option value.... 這不是亂碼. 01/27 23:14
→ s860134: 還是有程式碼給別人 debug 比較快 01/27 23:15
→ threeSecGun: 感謝樓上幾位版友建議 後來找出解決方式 01/29 17:15
→ threeSecGun: 直接在file open加上encoding="utf-8" 即可顯示中文 01/29 17:16