2013-05-18 5 views
3

치료를 사용하여 내부 웹 앱에서 테스트를 수행하고 있습니다. 모든 테스트가 끝나면 CrawlSpider를 사용하여 모든 곳을 검사하고 각 응답마다 HTML 유효성 검사기를 실행하고 404 개의 미디어 파일을 찾습니다. 그것은이를 제외하고 아주 잘 작동동적으로 치료 변경 요청 스케줄러 우선 순위

: 마지막 크롤링, 임의의 순서로 GET 일 ... 은 그래서, DELETE 작업 수행 URL은 다른 작업 전에 실행되고있다.

끝에 모든 삭제를 예약하고 싶습니다. 로그에 "지연"되는

scrapy 가져 오기 로그에서

class DeleteDelayer(object): 
    def enqueue_request(self, spider, request): 
     if request.url.find('delete') != -1: 
      log.msg("delay %s" % request.url, log.DEBUG) 
      request.priority = 50 

그러나 그것은 작동하지 않습니다 ... 나는보고 삭제할 수 있지만,이 기간 동안 실행됩니다 : 나는 스케줄러의 같은 종류의 많은 방법을 시도 실행.

나는 메모리에 모든 삭제 URL을 쌓아 수있는 미들웨어를 사용하여 생각하고 spider_idle 신호가 다시 넣어 호출,하지만이 작업을 수행하는 방법에 대한 확실하지 않다 때.

이것을 달성하는 가장 좋은 방법은 무엇입니까? 당신이 (예를 들어, 자신의 대기열에 요청을 삽입 설정 레디 스)를 수집하기 위해 미들웨어를 사용할 수 있습니다

  • 작동하지 않습니다 (50)에 우선 순위를 설정 (귀국일를 무시 있도록 요청

  • 답변

    0
    1. 기본 우선 순위는 0이며, IngnoreRequest Exception) 해당 '삭제'요청
    2. 2 단계에서 대기열에서로드 요청으로 2 차 크롤링 시작