这是运行我的刮刀的命令。
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`
>
>
答案 0 :(得分:3)
你没有尝试在你的cron作业中对date命令应用任何格式吗?你需要逃避cron的百分号,即
`date +\%m`.`date +\%d`.`date +\%y`.tar.gz
请参阅:Percent sign % not working in crontab
此外,当您不使用cron(勾选`date`
)时,它是否可以从命令行运行?
答案 1 :(得分:2)
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中使用任何spider属性(使用-o
设置的内容)。请记住,any spider argument(您可以添加到-a key=value
的命令行中的内容)将作为spider参数(作为字符串)提供。