1. 程式人生 > >Scrapy輸出文件格式問題匯總

Scrapy輸出文件格式問題匯總

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輸出文件格式問題匯總