2017-11-14 1 views
1

치료 프로젝트 (Scrapy 1.4, Python 3.x)가 있습니다. 조건이 충족되지 않으면 내 스파이더를 다시 실행하고 싶습니다. 나는 가능한 모든 방법을 시도 치료 거미를 다시 시작할 수 없습니다

def __init__(self): 
    dispatcher.connect(self.spider_closed, signals.spider_closed) 

def spider_closed(self): 
    if sth1 != sth2: 
     RESTART SPIDER 
    else: 
     FINISH SPIDER 

내 spider_closed 기능에서 할 : 운영 체제 명령을 사용하여 실행 거미, bash는 스크립트 실행 거미 등 CrawlerProcess을 사용하여 실행 거미 ...하지만 때마다 나는 오류를

있어
ImportError: No module named ~my project name~ 

아무도 도와 줄 수 있습니까?

답변

1
ImportError: No module named ~my project name~ 

이 프로젝트의 경로/폴더를 찾을 didnt는 의미, 당신은 bash는 또는 무엇이든을 사용하여 거미를 실행하기 전에 해당 프로젝트 폴더에 CD에 있습니다. 여기

내가 동일한 시나리오에있을 때 내가

내가 ScrapyD를 설치 한 후 close 메소드 안에, 내가 scrapyD의 일정 엔드 포인트를 사용하여 다시는 내 스크레이퍼를 시작 DID 무엇인가.

def spider_closed(self, spider): 

    resp = requests.post("http://localhost:6800/schedule.json", data={'project': "default", 'spider': self.name}) 
    logging.info(resp.text) 
관련 문제