我有一个名为rooms
一个Scrapy蜘蛛,名为liverpool_rooms.py
Python脚本,并从名为liverpool_rooms.csv
以前的“运行”现有的蜘蛛输出文件。
问题
我想依次激活名为start_liverpool.txt
一个bash文件蜘蛛和脚本。
由于Scrapy无法覆盖,但只能将输出附加到现有文件,在此顺序激活之前,我想删除liverpool_rooms.csv
以便Scrapy创建新的liverpool_rooms.csv
。
的bashfile如下,
- 删除现有文件
liverpool_rooms.csv
- 运行蜘蛛
rooms
- 运行脚本
liverpool_rooms.py
重要:liverpool_rooms.py
进口蜘蛛出口liverpool_rooms.csv
。
Bashfile
#!/bin/bash
cd /Users/.../spiders
PATH=$PATH:/usr/local/bin
export PATH
rm liverpool_rooms.csv &&
scrapy crawl rooms -o liverpool_rooms.csv &&
python liverpool_rooms.py
冲突
我运行bashfile说明liverpool_rooms.csv
时收到错误liverpool_rooms.py
无法找到。这是因为rm liverpool_rooms.csv
会删除.csv文件,并且在运行蜘蛛之前显然会在错误上检查python liverpool_rooms.py
。
如何防止在运行蜘蛛之前检查错误liverpool_rooms.py
?
您是否打算将'Run spider rooms'作为后台进程运行? – Inian
我不确定我的理解。最终,我想通过cron作业每周运行一次bash文件。我希望它按照步骤1. 2.和3.顺序。 – LucSpan
由于你的语句被'&&'隔开,如果第一个语句失败(当没有找到csv文件,'rm'将会失败),第二个和第三个语句将不会被执行。 – Inian