Scrapy输出文件格式问题汇总

Q:Scrapy抓取的内容(包含中文)输出到JSON Lines文件时如何确保输出的是字符本身而不是其unicode编码?
A:默认的JsonLinesItemExporter其ensure_ascii属性为True,使得在ASCII字符集中包含的字符才能输出字符本身,其他的字符(如各种东亚语言)则输出其unicode编码。在piplines.py中添加如下代码,将JsonLinesItemExporter的ensure_ascii设置为False。

class CustomJsonLinesItemExporter(JsonLinesItemExporter):
    def __init__(self, file, **kwargs):
        # 将超类的ensure_ascii属性设置为False, 确保输出中文而不是其unicode编码
        super(CustomJsonLinesItemExporter, self).__init__(file, ensure_ascii=False, **kwargs)

Q:输出为csv文件时,Scrapy的CsvItemExporter输出的文件每行后面为何会多一行空行?
A:参考Stack Overflow

To fix this in Scrapy 1.3, you can patch it by adding newline='' as parameter to io.TextIOWrapper in the init method of the CsvItemExporter class in scrapy.exporters.

posted @ 2018-08-06 22:14  HitAnyKey  阅读(856)  评论(0编辑  收藏  举报