scrapy - 如何将项目文件中的项目写入 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 字段,但我不知道如何访问它们。
解决方案
如果您真的想将数据附加到您的文件中,您需要创建一个自定义管道,该管道将检查输出文件是否已经存在并在需要时写入标题行。
推荐阅读
- jquery - 使用mysql和ajax时访问json字符串中的变量的问题
- powershell - 基于动作的对象事件有时会丢失
- powershell - 没有对文件夹进行更多更改时使用 Powershell 执行脚本
- javascript - 如何使用 NodeJS 和 SocketIO 在 React-Native 中处理离线消息
- vba - 拒绝以编程方式访问 Office VBA 项目
- javascript - Tumblr 上传视频和音频中不需要的填充
- javascript - if 和 else 函数在 javascript 上不起作用
- c# - C# - 在 Windows 窗体中使用图形绘制一个居中的矩形不会给出预期的结果
- database - 如何通过重新排序填充、排序和限制来优化查询性能
- java - JSON 到 GSON 和 POJO 类