scrapy 抓取的中文結果亂碼,請問如何解決?

使用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:爬蟲計算機網路 |