伊莉討論區

標題: PHP爬蟲抓中油95油價,出現中文亂碼 [打印本頁]

作者: u48326    時間: 2020-10-23 05:49 PM     標題: PHP爬蟲抓中油95油價,出現中文亂碼

本帖最後由 u48326 於 2020-10-23 05:54 PM 編輯

欲由中油官網得知當日的95油價,用PHP 的 getElementById() 做法,但 id 含有中文、結果回傳值為空。
第2行測試一個無中文的 id,有抓到值,但回傳時中文顯示亂碼。
查中油首頁設定 charset=utf-8,所以我在爬蟲程式裡也加入:
header("Content-Type:text/html; charset=utf-8");卻無效果。程式如附件。有請前輩指導,謝謝!
[attach]133496428[/attach]
作者: tryit244178    時間: 2020-10-25 03:01 AM

你的文件有存成unicode嗎?也許這樣可以解決你的問題
作者: u48326    時間: 2020-10-26 03:28 PM

tryit244178 發表於 2020-10-25 03:01 AM
你的文件有存成unicode嗎?也許這樣可以解決你的問題

程式是用 Notepad++ 編輯,預設儲存是 UTF-8 。
若在第6行增加一行:echo $html;
可以完整顯示原網頁內容。
作者: u48326    時間: 2020-10-26 04:06 PM

本帖最後由 u48326 於 2020-10-26 04:09 PM 編輯

[attach]133519133[/attach][attach]133519133[/attach]搞定了。
原來 UTF-8 的網頁在 loadHTML() 之前要加一道小手續:

$searchPage = mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8");

原程式修改後如附件。





歡迎光臨 伊莉討論區 (http://pixiv.eyny.com/) Powered by Discuz!