Scrapy 如何将项目从项目文件写入csv,然后在每次运行程序后追加csv文件

Scrapy 如何将项目从项目文件写入csv,然后在每次运行程序后追加csv文件,scrapy,Scrapy,我想创建一个csv文件,用项目文件中的项目填充它,并在以后每次运行程序时用新数据附加csv文件。我的目标是在设置完成后,使用cron以一定的时间间隔运行它 import scrapy import json from ..items import AnotherddItem import datetime import csv class AnotherddSpider(scrapy.Spider): name = 'ddgrab' allowed_domains = ['ex

我想创建一个csv文件,用项目文件中的项目填充它,并在以后每次运行程序时用新数据附加csv文件。我的目标是在设置完成后,使用cron以一定的时间间隔运行它

import scrapy
import json
from ..items import AnotherddItem
import datetime
import csv

class AnotherddSpider(scrapy.Spider):
    name = 'ddgrab'
    allowed_domains = ['example.com']
    start_urls = ['https://www.example.com/all?source=private']

    csv_columns=['timestamp','sellerId','sellerName','adUrl']
    dict_data = [timestamp, sellerId, sellerName, adUrl]
    csv_file = 'test.csv'
    with open(csv_file, 'w') as csvfile:
        writer = csv.DictWriter(csvfile, fieldnames=csv_columns)
        writer.writeheader()
        for data in dict_data:
            writer.writerow(data)

dict_数据包含my items.py文件中的所有字段。我知道我在这里所做的是错误的,因为dict_数据字段尚未定义,但我不知道如何访问它们。

如果你真的想将数据附加到你的文件中,你需要创建一个自定义项,检查输出文件是否已经存在,如果需要,写入标题行。

也许这值得打开一个功能请求上游。感谢Gallaecio,我将所有内容都连接到sqlite数据库,现在一切正常。我还有一个问题,我不确定下一步该怎么办。更确切地说,如何去做。我想刮取相同的URL,但我想刮取它们一小时后,24小时后,48小时后等等。我可以使用时间戳来完成所有这一切,但我想知道我是否可以通过相同的管道将其馈送到相同的数据库中,并使用表示新数据的新列。我现在在crontab上运行它,每分钟都在运行,我希望能够再次刮取它们。对不起,这是我第一个使用python的项目,scrapy,所以我正处在一个陡峭的学习曲线上,还有很多事情我不确定。