Python 设置下载延迟时是否忽略刮擦并发\u请求?

Python 设置下载延迟时是否忽略刮擦并发\u请求?,python,scrapy,Python,Scrapy,查看scrapy统计数据(爬网的X页(以X页/分钟))在我看来,似乎只要,例如: DOWNLOAD_DELAY = 4.5 设置后,无论并发\u请求设置如何,请求都将按顺序进行 根据我的理解,延迟不应该计入每个并发请求吗?或者我是否误解了scrapy架构?所以在我的例子中,我们不应该: scrapy crawl us_al -a cid_range=000001..000020 在10个并发请求的情况下运行得更快,而不是在大约1分50秒内(请记住,随机化\u下载\u延迟),这对我来说是什么?

查看scrapy统计数据(
爬网的X页(以X页/分钟)
)在我看来,似乎只要,例如:

DOWNLOAD_DELAY = 4.5
设置后,无论
并发\u请求设置如何,请求都将按顺序进行

根据我的理解,延迟不应该计入每个并发请求吗?或者我是否误解了scrapy架构?所以在我的例子中,我们不应该:

scrapy crawl us_al -a cid_range=000001..000020
在10个并发请求的情况下运行得更快,而不是在大约1分50秒内(请记住,
随机化\u下载\u延迟
),这对我来说是什么?我将如何改变这种行为?当没有
DOWNLOAD\u DELAY
时,用
CONCURRENT\u REQUESTS=5
查询20个项目需要4秒,
CONCURRENT\u REQUESTS=1
10秒,这种行为对我来说更有意义

下面是蜘蛛的样子:

import random
import re
import scrapy

class UsAlSpider(scrapy.Spider):
    name = "us_al"
    allowed_domains = ["arc-sos.state.al.us"]
    start_urls = []
    custom_settings = {
        'CONCURRENT_REQUESTS': 10,
        'CONCURRENT_REQUESTS_PER_DOMAIN': 10,
        'DOWNLOAD_DELAY': 4.5
    }

    def __init__(self, cid_range=None, *args, **kwargs):
        """
        Range (in the form: 000001..000010)
        """
        super(UsAlSpider, self).__init__(*args, **kwargs)

        self.cid_range = cid_range

    def start_requests(self):
        if self.cid_range and not re.search(r'^\d+\.\.\d+$', self.cid_range):
            self.logger.error('Check input parameter cid_range={} needs to be in form cid_range=000001..000010'.format(self.cid_range))
            return
        # crawl according to input option
        id_range = self.cid_range.split('..')
        shuffled_ids = ["{0:06}".format(i) for i in xrange(
            int(id_range[0]), int(id_range[1]) + 1)]
        random.shuffle(shuffled_ids)
        for id_ in shuffled_ids:
            yield self.make_requests_from_url('http://arc-sos.state.al.us/cgi/corpdetail.mbr/detail?corp={}'.format(id_))

    def parse(self, response):
        # parse the page info

CONCURRENT_REQUESTS
通常只是一种保存请求的方法,因此如果您使用任何其他设置(通常由域强制执行),将
CONCURRENT_REQUESTS
设置为一个较高的数字是没有问题的


域名使用了
下载延迟
,这是正确的,因为其背后的理念是不要重击特定网站。这也会影响
每个域的并发请求数
,就好像
下载延迟>0->每个域的并发请求数=1

那么
并发请求数
对所有爬行器都有效,是整个scrapy框架的常规设置吗?