Запросы пропуска Scrapy, когда CONCURRENT_REQUESTS равен 16 (значение по умолчанию) - PullRequest
0 голосов
/ 12 июля 2019

Scrapy пропускает запросы, если для CONCURRENT_REQUESTS установлено значение 16, значение по умолчанию.

Я пытаюсь передать несколько URL-адресов с помощью scrapy SiteMap spider, и случайно пропускаются 2-3 из 43 URL-адресов. Это не вызывает функцию разбора для них. Когда я печатаю длину запросов в start_request, это дает 43, однако функция синтаксического анализа вызывается только 39-40 раз.

Однако странно то, что когда я устанавливаю CONCURRENT_REQUESTS = 1 в файле settings.py, он работает правильно. Ранее было установлено значение по умолчанию 16.

класс MySpider (SitemapSpider):

name = "sitemap_spider"


def __init__(self,config='', **kwargs):

    self.sitemap_urls = self.config["sitemap_urls"]
    self.other_urls = self.config["other_urls"]
    super(MySpider,self).__init__()

    options = webdriver.ChromeOptions()
    options.add_argument('--headless')

    self.driver = webdriver.Chrome(chrome_options=options)



def start_requests(self):
    requests = list(super(MySpider, self).start_requests())
    requests += [scrapy.Request(x, self.parse) for x in self.other_urls]
    self.logger.info("requests: " + str(requests))
    return requests

def parse(self, response):
    # here I have a long parsing code#

Как при увеличении количества одновременных запросов пропускаются несколько URL. Не хватает ли мощности?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...