scrapy 抓取的中文結果亂碼,請問如何解決?
12-28
使用scrapy抓取的結果,中文默認是Unicode,無法顯示中文。
請問如何解決?
這個官網給出解釋以及解決辦法了:
在setting文件中設置:FEED_EXPORT_ENCODING = "utf-8" 就可以啦
首先Unicode不是亂碼,如果把這些數據保存下來,或者直接顯示使用是沒有問題的。
另外,如果你需要在scrapy shell中調試hxs的時候,你可以自定義一個printhxs(hxs)這樣的函數用來在shell中顯示中文。
def printhxs(hxs):
for i in hxs:
print i.encode("utf-8")
這樣當你使用 hxs.select("\Xpath") 時可以這樣顯示中文內容
echoChinese = hxs.select("\Xpath ext()").extract()
printhxs(echoChinese)
^_^
這個並不是亂碼,
只是存儲時會作為unicode來存,顯示的時候會是中文的
print u"u4e0du662fu4e71u7801" , 即可顯示中文
for sel in response.xpath("//div[@id="mcontent"]/div/p"):
conect = sel.xpath("text()").extract()
for t in conect:
print(t.encode("GBK"))
在代碼文件最頂部添加這個就可以支持中文了:
# -*- coding: UTF-8 -*-
然後直接輸出:print "xxxxx"
可以在setting中設置編碼格式為UTF-8的格式
scrapy抓取的中文結果亂碼
你寫到資料庫或者文件就變成utf_8了。你用的2.7是吧?
在shell中還是unicode編碼,不過輸出的文檔是中文,解決方法這裡有
scrapy研究探索(二)——爬w3school.com.cn
推薦閱讀:
※菜鳥學習網路爬蟲的最佳路線是什麼?
※爬蟲相關的技能適合放進簡歷裡面嗎?
※是否有智能爬蟲,即不需要會寫代碼,只要定義後就可以開始爬蟲了?
※哪個開發軟體可以寫python啊,VS可以么?
TAG:爬蟲計算機網路 |