2014-07-23 4 views
0

치료 요청을 지연시켜야합니다. 내가 긁고있는 웹 페이지는 "귀하의 데이터는 50 초 내에 준비가 될 것입니다."그리고 시간은 2 ~ 60 초가 될 수 있습니다. 그런 다음 많은 페이지를 스크랩하고 싶습니다. (요청 초 요청으로부터 목록을 얻습니다) 그래서 설정하십시오 60 번으로 글로벌 download_delay하는 것이 최선의 방법은 아닙니다.치료 - 다운로드 _ 지연 시간 변경

답변

0

당신은 DELAY 당신이 응답에서 얻는 시간이 될 것입니다 귀하의 경우에는 this

from scrapy.spider import BaseSpider 
from twisted.internet import reactor, defer 
from scrapy.http import Request 

DELAY = 5 # seconds 


class MySpider(BaseSpider): 

    name = 'wikipedia' 
    max_concurrent_requests = 1 

    start_urls = ['http://www.wikipedia.org'] 

    def parse(self, response): 
     nextreq = Request('http://en.wikipedia.org') 
     dfd = defer.Deferred() 
     reactor.callLater(DELAY, dfd.callback, nextreq) 
     return dfd 

을 시도 할 수 있습니다.