设置向上
我有一个名为rooms
的Scrapy蜘蛛,一个名为liverpool_rooms.py
的Python脚本以及之前运行的现有蜘蛛输出文件'名为liverpool_rooms.csv
。
问题
我想从名为start_liverpool.txt
的bash文件中依次激活spider和脚本。
由于Scrapy无法覆盖但只能将输出附加到现有文件,因此在此顺序激活之前,我想删除liverpool_rooms.csv
,以便Scrapy创建新的liverpool_rooms.csv
。
接下来是bash文件,
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
<小时/> 的冲突
运行bash文件时,我收到liverpool_rooms.py
的错误,指出无法找到liverpool_rooms.csv
。这是因为rm liverpool_rooms.csv
删除了.csv文件,并且在运行蜘蛛之前显然会检查错误python liverpool_rooms.py
。
如何在运行蜘蛛之前阻止检查liverpool_rooms.py
错误?
答案 0 :(得分:0)
在第一次运行此脚本时,将不会删除要删除的csv文件,因此脚本将失败。
<强>解决方案:强>
#!/bin/bash
cd /Users/.../spiders
PATH=$PATH:/usr/local/bin
export PATH
rm liverpool_rooms.csv ; true
scrapy crawl rooms -o liverpool_rooms.csv
python liverpool_rooms.py
<强>解释强>
; true
使脚本在执行删除时忽略任何错误&&
,因为在脚本