Я сталкиваюсь со странным поведением при выдаче запросов. В идеале каждый запрос будет получен через 6 секунд, но на самом деле происходит то, что через 60 (6 * 10) секунд все запросы выполняются одновременно, я смог чтобы исправить это с помощью CONCURRENT_REQUESTS=1
.
import scrapy
import time
from scrapy.utils.response import open_in_browser
class TestSpider(scrapy.Spider):
name = 'Test'
allowed_domains = ['example.com']
def start_requests(self):
for _ in range(10):
time.sleep(6)
url = "http://www.example.com"
yield scrapy.Request(url=url,callback=self.parse,dont_filter=True)
def parse(self,response):
open_in_browser(response)
Если я установлю CONCURRENT_REQUESTS=3
, он будет ждать 18 секунд, чтобы выдать 3 запроса, затем перейти к следующим 3 (ждать 18 se c, а затем уступить) и скоро. (Я использую time.sleep(6)
для замены имеющейся у меня функции, которая занимает столько времени). Как я могу заставить его выдать запрос (как обычный генератор)