Как запустить несколько одинаковых пауков в Scrapy? - PullRequest
0 голосов
/ 06 января 2019

У меня есть список URL, например ['http://example.com/page1', http://example.com/page2',...].

Эти URL-адреса находятся в доменном имени, и я написал сканер с помощью Scrapy, и мне нужно запустить эти URL-адреса вместе, используя один и тот же сканер. Если у меня есть 10 URL-адресов, я хочу создать 10 таких же процессов для запуска сканера для повышения эффективности. Есть ли решение?

Я пытался использовать CrawlerProcess для запуска сканера, но если URL-адресов было слишком много, это напомнило бы мне об ошибке при слишком большом количестве TCP-соединений. Хотя сканер всегда работает, этот метод не способствует обслуживанию.

from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings

process = CrawlerProcess(get_project_settings())
page_urls = ['http://example.com/page1', 'http://example.com/page2',]

for page_url in page_urls:
    process.crawl('vimeo', start_urls=[page_url])
process.start()

1 Ответ

0 голосов
/ 11 января 2019

Если цель состоит в том, чтобы увеличить количество одновременных запросов одного паука, а не специально запускать несколько пауков параллельно, я предлагаю вам просто поиграть с настройками, такими как DOWNLOAD_DELAY, CONCURRENT_REQUEST или CONCURRENT_REQUESTS_PER_DOMAIN.

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