2017-04-25 5 views
0

셋업 내가 rooms라는 Scrapy 거미, liverpool_rooms.py라는 파이썬 스크립트와 liverpool_rooms.csv라는 이전의 '실행'에서 기존의 거미 출력 파일을 가지고파이썬 & scrapy bashfile 연속 충돌

.


문제 내가 start_liverpool.txt라는 이름의 bash는 파일에서 거미와 스크립트를 활성화 순차적으로 할

.

Scrapy는 기존 파일에 덮어 쓰기는 할 수 없지만 출력을 추가하기 때문에, liverpool_rooms.csv을 제거하여 Scrapy가 새로운 liverpool_rooms.csv을 생성하도록합니다.

bashfile은 다음,

  1. liverpool_rooms.py

중요 rooms

  • 스크립트 실행을 liverpool_rooms.csv
  • 실행 거미에게 파일을 기존 제거 liverpool_rooms.py 수입이 수출 liverpool_rooms.csv 거미.


    Bashfile liverpool_rooms.csv을 알리는 bashfile을 실행할 때 나는 liverpool_rooms.py에 대한 오류가 발생

    #!/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 
    


    충돌을 찾을 수 없습니다. 이는 rm liverpool_rooms.csv이 .csv 파일을 제거하고 스파이더를 실행하기 전에 오류가있는 경우 python liverpool_rooms.py이 선택되어 있기 때문입니다.

    스파이더를 실행하기 전에 오류로 인한 liverpool_rooms.py의 검사를 어떻게 방지 할 수 있습니까?

  • +0

    '스파이더 룸 실행'을 백그라운드 프로세스로 실행하겠습니까? – Inian

    +0

    이해할 수 있는지 잘 모르겠습니다.궁극적으로, 나는 일주일에 한 번 cron 작업을 통해 bash 파일을 실행하려고합니다. 나는 그것이 단계 1과 2와 3을 순차적으로 따르길 바란다. – LucSpan

    +0

    '&& '로 구분 된 문장이 있기 때문에 1st가 실패하면 csv 파일을 찾을 수 없을 때 2 번째와 3 번째 문장은 실행되지 않습니다.'rm'은 실패합니다. – Inian

    답변

    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 스크립트가 오류를 무시한다 스크립트