在编写scrapy爬虫的时候,从网页爬取的数据有中文,保存到json文件后显示为unicode的形式。在网上百度了一下,说是要在json.dump函数中设置参数:
ensure_ascii=False
import json
import chardet
import sys
class SisPipeline(object):
def __init__(self):
self.file = open(r'D:\sis\sis\items.jl', 'wb')
def process_item(self, item, spider):
line = json.dumps(dict(item),ensure_ascii=False,encoding='windows-1252') + "\n"
self.file.write(line,)
return item
但是一设置这个参数就报错ascii codec cant encode the character
于是网上百度
应该是出了编码问题,谷歌了一下找到了解决方案:
在python的Lib/site-packages文件夹下新建一个sitecustomize.py:
import sys
问题解决。sys.setdefaultencoding('gb2312')