Scrapy, ограничение на start_url

Мне интересно, есть ли ограничение на количество start_urls я могу назначить моему пауку? Насколько я искал, на листе списка, похоже, нет документации.

В настоящее время я установил свой паук так, чтобы список start_urls считывался из файла csv. Количество URL-адресов составляет около 1 000 000.

One Solution collect form web for “Scrapy, ограничение на start_url”

Не существует предела, но вы, вероятно, хотите ограничить его самостоятельно, иначе вы можете столкнуться с проблемами памяти.
Что может случиться, все эти 1M-URL будут назначены планировщику scrapy, и поскольку объекты python будут немного тяжелее обычных строк, у вас закончится нехватка памяти.

Чтобы этого избежать, вы можете spider_idle стартовые URL-адреса с spider_idle сигнала spider_idle :

 class MySpider(Spider): name = "spider" urls = [] batch_size = 10000 @classmethod def from_crawler(cls, crawler, *args, **kwargs): spider = cls(crawler, *args, **kwargs) crawler.signals.connect(spider.idle_consume, signals.spider_idle) return spider def __init__(self, crawler): self.crawler = crawler self.urls = [] # read from file def start_requests(self): for i in range(self.batch_size): url = self.urls.pop(0) yield Request(url) def parse(self, response): pass # parse def idle_consume(self): """ Everytime spider is about to close check our urls buffer if we have something left to crawl """ reqs = self.start_requests() if not reqs: return logging.info('Consuming batch') for req in reqs: self.crawler.engine.schedule(req, self) raise DontCloseSpider 
  • Почему LinkExtractor не улавливает ссылки, созданные после запросов AJAX?
  • Как добавить новые запросы для моего Scrapy Spider во время сканирования
  • Scrapy - нет модуля с именем mail.smtp
  • scrapyd deploy показывает 0 пауков
  • Scrapy - Получить объект паука в dupefilter
  • Scrapy: ImportError: нет модулей с именами элементов
  • Ошибка при запуске нового проекта
  • Спайдер-паук не работает
  • Python - лучший язык программирования в мире.