Как я могу остановить скрапинг CrawlSpider и позже возобновить с того места, где он остановился? - PullRequest
12 голосов
/ 05 сентября 2011

У меня есть Scrapy CrawlSpider , у которого есть очень большой список URL для сканирования.Я хотел бы иметь возможность остановить его, сохранив текущий статус и возобновив его позже без необходимости начинать все сначала.Есть ли способ сделать это в рамках Scrapy?

Ответы [ 3 ]

9 голосов
/ 12 апреля 2013

Просто хотел поделиться этой функцией, включенной в последнюю версию scrapy, но имя параметра изменилось.Вы должны использовать его так:

 scrapy crawl thespider --set JOBDIR=run1

Для получения дополнительной информации здесь http://doc.scrapy.org/en/latest/topics/jobs.html#job-directory

6 голосов
/ 06 сентября 2011

Вопрос о ML возник всего несколько месяцев назад: http://groups.google.com/group/scrapy-users/browse_thread/thread/6a8df07daff723fc?pli=1

Цитата Пабло:

Мы не только рассматриваем это, но и работаем над этим. Есть в настоящее время два рабочих патча в моем MQ, которые добавляют эту функциональность в Если кто-то хочет попробовать предварительный просмотр (они должны быть применены в порядок): http://hg.scrapy.org/users/pablo/mq/file/tip/scheduler_single_spider.... http://hg.scrapy.org/users/pablo/mq/file/tip/persistent_scheduler.patch Чтобы запустить паука как раньше (без настойчивости):

scrapy crawl thespider 

Чтобы запустить планировщик хранения паука + состояние dupefilter в директории:

scrapy crawl thespider --set SCHEDULER_DIR=run1 

Во время сканирования вы можете нажать ^ C, чтобы отменить сканирование и возобновить его. позже с:

scrapy crawl thespider --set SCHEDULER_DIR=run1 

Имя параметра SCHEDULER_DIR обязательно изменится до окончательного релиз, но идея будет та же - что вы передаете каталог где упорствовать государство.

2 голосов
/ 23 апреля 2015

Scrapy теперь имеет рабочую функцию для этого на своем сайте, задокументированную здесь:

Вот фактическая команда:

scrapy crawl somespider -s JOBDIR=crawls/somespider-1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...