[問題] 爬蟲編碼問題
大家好
我最近在爬蟲一個網站
使用的版本是python 3.4
在編碼上面遇到一個奇怪的問題
首先先request url
url = 'http://lvyou.baidu.com/taibei/'
res = requests.get(url)
res.encoding = 'utf-8'
res.text裡面有一段感覺是JavaScript用的json
if(false == "0"){
define('besttime',{text:"10\u6708-11\u6708\u662f\u6e38\u53f0\u5317\u7684\u6700\u4f73\u65f6\u95f4\uff0c\u6b64\u65f6\u6c14\u6e29\u572822\u2103\u201424\u2103"});
}
10\u6708-11 一直編碼不出來,原文是簡體中文
可是奇怪的是
我在下面另個變數等於他
aa = '10\u6708-11'
print(aa)
>> 10月-11
這樣就可以顯示了
請問為什麼網頁爬下來的編碼不成,另存變數卻可以?
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.62.150
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1466048341.A.830.html
※ 編輯: allan80625 (118.163.62.150), 06/16/2016 11:39:45
→
06/16 12:20, , 1F
06/16 12:20, 1F
→
06/16 12:21, , 2F
06/16 12:21, 2F
你是說把if那段直接print出來嗎? 直接print出來是可以轉成中文
這樣就跟我下面另存成aa的做法一樣
問題點是在爬蟲下來的if那段\u6708無法解碼
原始網站的網站原始碼if那一段也是\u6708這樣顯示
付上處理的網站 http://lvyou.baidu.com/taibei/
推
06/16 14:50, , 3F
06/16 14:50, 3F
是的,那段一直無法解碼成中文
→
06/16 17:54, , 4F
06/16 17:54, 4F
這方法有試過了,還是無法
※ 編輯: allan80625 (118.163.62.150), 06/16/2016 20:17:45
→
06/16 21:34, , 5F
06/16 21:34, 5F
→
06/16 21:35, , 6F
06/16 21:35, 6F
→
06/16 21:39, , 7F
06/16 21:39, 7F
→
06/16 21:45, , 8F
06/16 21:45, 8F
→
06/16 23:35, , 9F
06/16 23:35, 9F
→
06/16 23:36, , 10F
06/16 23:36, 10F
→
06/17 02:28, , 11F
06/17 02:28, 11F
→
06/17 02:30, , 12F
06/17 02:30, 12F
→
06/17 02:30, , 13F
06/17 02:30, 13F
→
06/17 02:33, , 14F
06/17 02:33, 14F
→
06/17 02:35, , 15F
06/17 02:35, 15F
→
06/17 02:36, , 16F
06/17 02:36, 16F
→
06/17 02:48, , 17F
06/17 02:48, 17F
→
06/17 02:56, , 18F
06/17 02:56, 18F
→
06/17 02:56, , 19F
06/17 02:56, 19F
→
06/17 03:07, , 20F
06/17 03:07, 20F
感謝,成功了,真的是因為兩個斜線的問題
後來我用json.dumps(besttime,ensure_ascii=False)
print出來發現是\\u什麼的 所以我又在後面replace(兩個斜線,一個斜線)
再用json.loads就可以了
abc = json.dumps(besttime,ensure_ascii=False).replace('\\\\','\\')
aaa = json.loads(abc)
print(aaa) 成功!!
謝謝大家^^
※ 編輯: allan80625 (118.163.62.150), 06/17/2016 10:15:19