Scrapy輸出文件格式問題匯總
阿新 • • 發佈:2018-08-07
rap scrapy custom pat pip init lock 屬性 json
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.
Scrapy輸出文件格式問題匯總