在编写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')
在使用Scrapy爬取包含中文数据的网页时,遇到将数据保存到JSON文件时出现unicodeDecodeError_ascii错误。为了解决这个问题,需要在调用json.dump()函数时添加特定参数。
28万+

被折叠的 条评论
为什么被折叠?



