首页 > 解决方案 > 如何将项目文件中的项目写入 csv,然后每次运行程序时附加 csv 文件

问题描述

我想创建一个 csv 文件,用 Items 文件中的项目填充它,然后每次运行程序时都在 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_data 包含我的 items.py 文件中的所有字段。我知道我在这里所做的事情是错误的,因为尚未定义 dict_data 字段,但我不知道如何访问它们。

标签: scrapy

解决方案


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


推荐阅读