У меня есть несколько пауков, которых я запускаю в bash-скрипте, например так:
pipenv run scrapy runspider -o output-a.json a.py
pipenv run scrapy runspider -o output-b.json b.py
Поскольку они должны работать долго, я бы хотел иметь простой способ контроля их успешности;Мой план состоял в том, чтобы пинговать https://healtchecks.io, когда оба скребка работают успешно (то есть у них нет сообщений об ошибках).Я набросал несколько assert
операторов в код, чтобы быть достаточно уверенным в этом.
pipenv run scrapy runspider -o output-a.json a.py
result_a=$?
pipenv run scrapy runspider -o output-b.json b.py
result_b=$?
if [ $result_a -eq 0 && $result_b -eq 0]; then
curl $url
fi
Моя проблема в том, что каждая команда scrapy runspider
всегда возвращает 0
, несмотря ни на что.Это означает, что я не могу действительно проверить, были ли они успешными.
Есть ли способ повлиять на это поведение?Какой-то флаг командной строки я не нашел?Если нет, как бы я запустил двух пауков из скрипта Python и сохранил их вывод в определенном месте?Я нашел эту ссылку , но там не упоминается, как обращаться с возвращенными элементами.