2016-09-27 6 views
1

나는 치료와 함께 일하고 있습니다. 나는 db 테이블을 반복하고 각 스크랩 (random_form_page)에 대한 시작 페이지를 가져 와서 각 시작 페이지에 대한 요청을 생성하려고합니다. api를 사용하여 초기 요청과 함께 프록시를 얻으 려합니다. 그래서 내가 가지고있는 콜백 모델을 사용하여, 자신의 프록시를 가지고 각 요청을 설정하려면 :치료 - 중복 요청 필터링

def start_requests(self): 
    for x in xrange(8): 
     random_form_page = session.query(.... 

     PR = Request(
      'htp://my-api', 
      headers=self.headers, 
      meta={'newrequest': Request(random_form_page, headers=self.headers)}, 
      callback=self.parse_PR 
     ) 
     yield PR 

을 나는주의 사항 :

[scrapy] DEBUG: Filtered duplicate request: <GET 'htp://my-api'> - no more duplicates will be shown (see DUPEFILTER_DEBUG to show all duplicates) 

내 코드에서 나는 8을 ​​통해 루프하지만 것을 알 수있다 첫 번째 페이지에 대한 요청 만 생성합니다. 내가 추측 한 다른 것들은 걸러 낸다. http://doc.scrapy.org/en/latest/topics/settings.html#dupefilter-class을 살펴 보았지만이 필터링 작업을 해제하는 방법은 여전히 ​​확실하지 않습니다. 필터링을 어떻게 끌 수 있습니까? Request 객체에

답변

5

사용

dont_filter = 진정한

def start_requests(self): 
    for x in xrange(8): 
     random_form_page = session.query(.... 

     PR = Request(
      'htp://my-api', 
      headers=self.headers, 
      meta={'newrequest': Request(random_form_page, headers=self.headers)}, 
      callback=self.parse_PR, 
      dont_filter = True 
     ) 
     yield PR 
+0

대단히 감사합니다! – user61629