查看完整版本: PHP爬蟲抓中油95油價,出現中文亂碼
頁: [1]

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");卻無效果。程式如附件。有請前輩指導,謝謝!
<div></div>

tryit244178 發表於 2020-10-25 03:01 AM

你的文件有存成unicode嗎?也許這樣可以解決你的問題

u48326 發表於 2020-10-26 03:28 PM

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

程式是用 Notepad++ 編輯,預設儲存是 UTF-8 。
若在第6行增加一行:echo $html;
可以完整顯示原網頁內容。

u48326 發表於 2020-10-26 04:06 PM

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

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

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

原程式修改後如附件。
頁: [1]