最近遇到一个问题,需要将多个spider抓取到的数据保存到同一个csv文件,但是数据会丢失。在测试的时候,发现数据不仅经常性丢失,而且每个spider写入数据前都会先写入列名,尝试通过判断文件是否存在来决定是否写入header,都不能解决问题。但是呢,分别写入不同的csv文件却不会出现数据丢失的情况,有点懵,看来对scrapy的运行机制的理解还是不够,目前还没找到问题所在。
在同事的帮助下,终于找到解决方法了:
1、先创建一个空的csv文件,只写入header
2、再用pandas将数据以追加的方式写入
1 | # pipelines.py |
在根目录下新建run.py,写上运行多个脚本的代码
1 | # -*- coding:utf-8 -*- |
直接在终端运行(切到scrapy项目根目录下)
1 | python -m run |