爬蟲返回數據 16進制編碼問題

昨天分析爬蟲接口時 發現返回數據 json轉化時出錯 經過檢查發現問題是 json字符串中有 \x3E\x2F這種編碼字符串,
開始解決思路就是把16進制轉化爲普通字符串結果不行

原因

編碼問題 本來這些返回數據是需要前端js 去解析的
\x 開頭的16進制數據 是js的表示方法
0x 開頭 纔是python 16進制的表示方法
所以返回的數據不處理 直接用python 去解析會出現異常

解決辦法

在 處理之前 先對返回的數據 進行編碼格式處理

res = response.content.decode('unicode_escape').encode('latin1').decode()

當然如果你是要直接對字符串進行處理的話 需要先轉成字節碼 然後對字節數據進行編碼
可以用下邊的方式

res = bytes(res_str, 'utf-8').decode('unicode_escape').encode('latin1').decode('utf-8')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章