scrapy導(dǎo)出文件時(shí)出現(xiàn)中文亂碼怎么辦?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,這篇文章總結(jié)了scrapy導(dǎo)出文件時(shí)出現(xiàn)中文亂碼的解決辦法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
創(chuàng)新互聯(lián)建站專注于企業(yè)成都營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、旌陽(yáng)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為旌陽(yáng)等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
使用scrapy crawl spidername -o filename.json命令執(zhí)行爬蟲,并將item寫入文件,發(fā)現(xiàn)中文亂碼,比如這樣子:
使用scrapy命令導(dǎo)出時(shí)指定編碼格式
scrapy crawl baidu -o baidu_med.json -s FEED_EXPORT_ENCODING=utf-8
借助Pipeline將item寫入到文件
1.修改pipelines.py,添加:
import json
import codecs
class YiyaoPipeline(object):
def __init__(self):
self.file = codecs.open('item.json', 'wb', encoding='utf-8')
def process_item(self, item, spider):
line = json.dumps(dict(item), ensure_ascii=False) + '\n'
self.file.write(line)
return item
2.修改settings.py,激活pipeline:
ITEM_PIPELINES = {
'yiyao.pipelines.YiyaoPipeline': 300,
}
注意:settings.py默認(rèn)有ITEM_PIPELINES配置,只是注銷掉了。
3.使用scrapy命令導(dǎo)出時(shí),直接執(zhí)行:
scrapy crawl baidu
看完這篇文章,你能夠獨(dú)立解決scrapy導(dǎo)出文件時(shí)出現(xiàn)中文亂碼的問(wèn)題了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀。