CSV导入MySQL数据库被意外截断解决
2014 年 9 月 20 日
如下图,就可能会被意外截断.
想到的解决办法有几个.
- 用JSON保存爬虫数据,但是导入MySQL需要自己处理.
- 在爬取时候替换逗号为中文逗号,会降低爬虫效率.
- 边爬取边入库,会使用数据库资源,成本高.
- 对现有CSV文件进行处理,用Python MySQL方式入库,入库效率较低.
- 对现有CSV文件处理,然后修改替换入库,效率最高,任务分离,我选择这种方法.
代码如下,
import csv with open('./ScrapyBooks-all.csv', newline='', encoding='utf-8') as f,open('./ScrapyBooks-new.csv', 'w', newline='', encoding='utf-8') as wf: reader = csv.reader(f) writer = csv.writer(wf) for row in reader: row[0] = row[0].replace(',',',') writer.writerow(row) wf.flush()
虽然只是简单的字符串替换,但是依然吃光CPU,然后替换完了,再导入这个文件,这个问题自然就解决了… (其他问题,遇到再看)