标签: python json encoding scrapy web-crawler
我正在用scrapy抓取一个页面并将数据保存在json文件中。但是数据有不同的编解码器(波斯语和英语)。对于使用uft-8的波斯数据编码工作正常但是当波斯语之间有英语单词时我得到一个错误:utf-8'编解码器不能对位置6315-6316中的字符进行编码:不允许使用代理。 我必须编码我的文件,因为波斯语单词显示为数字输出编码 我的json文件:
EventService
我试过uft-16但是没有用。
答案 0 :(得分:0)
如果您使用scrapy抓取页面,您只需要让scrapy为您生成json文件:
scrapy crawl yourcrawler -o output.json
在这种情况下,scrapy将进行导出,您不必担心编码。
自Scrapy 1.2.0起,引入了新设置FEED_EXPORT_ENCODING。通过将其指定为utf-16,JSON输出将不会被转义。
FEED_EXPORT_ENCODING
那就是添加你的settings.py:
FEED_EXPORT_ENCODING = 'utf-16'
请查看this page以获取更多信息。另外,我强烈建议您查看官方介绍教程here。