【问题标题】:How to create file name of Feed Export dynamically using scrapy command如何使用scrapy命令动态创建Feed Export的文件名
【发布时间】:2017-10-10 09:34:22
【问题描述】:

这是运行我的爬虫的命令。

scrapy crawl monitor -a filename="ScrapeProject.csv" -o filename.csv

它运行并将抓取的数据保存到filename.csv

我想安排为 cronjob 我希望 filename.csv 成为刮板运行的当前日期时间。

我尝试了反引号,但没有成功

scrapy crawl monitor -a filename="ScrapeProject.csv" -o `date`.csv

也试过这样

scrapy crawl monitor -a filename="ScrapeProject.csv" -o "date".csv

编辑:

以下是我根据@dps 推荐运行的命令,但它提示我输入一些内容?

root@ubuntu:/home/mani/pricemonitor# scrapy crawl monitor -a filename="ScrapeProject.csv" -o `date +\%m`.`date +\%d`.`date +\%y`.csv`
> 
>

【问题讨论】:

    标签: linux scrapy


    【解决方案1】:

    Scrapy Feed Exports 还支持(一些内置)storage URI parameters 开箱即用。

    %(time)s 就是其中之一。

    所以你可以这样做:

    scrapy crawl monitor -a filename="ScrapeProject.csv" -o '%(time)s.csv'
    

    它将以YYYY-mm-ddTHH-MM-SS 的形式创建输出文件,例如2017-05-11T12-12-18.csv.

    在内部,time is converted 使用 datetime.utcnow().replace(microsecond=0).isoformat().replace(':', '-')

    注意:您可以在 Feed URI 中使用任何蜘蛛属性(您使用 -o 设置的内容)。请记住,any spider argument(您可以使用 -a key=value 添加到命令行的内容)将作为蜘蛛参数(作为字符串)提供。

    【讨论】:

    • 该死的,你太不可思议了,我不得不将我接受的答案从@dps 恢复为你的......
    • 握拳无法赢得所有人,很好的答案。
    • windows 用户的小提示(标记为 linux 我知道这是第一个结果!),我只能用双引号来解决这个问题,但它就像一个魅力。 提示帽子
    【解决方案2】:

    您没有尝试将任何格式应用于您的 cron 作业中的日期命令,是吗?您需要为 cron 转义百分号,即

    `date +\%m`.`date +\%d`.`date +\%y`.tar.gz
    

    见:Percent sign % not working in crontab

    另外,当您不使用 cron 时,它是否可以从命令行工作(带有勾选的 `date` )?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      • 2020-10-07
      相关资源
      最近更新 更多