Мое решение для запуска 200+ пауков сразу заключалось в создании пользовательской команды для проекта. См. http://doc.scrapy.org/en/latest/topics/commands.html#custom-project-commands для получения дополнительной информации о реализации пользовательских команд.
YOURPROJECTNAME/команды/allcrawl.py:
from scrapy.command import ScrapyCommand
import urllib
import urllib2
from scrapy import log
class AllCrawlCommand(ScrapyCommand):
requires_project = True
default_settings = {'LOG_ENABLED': False}
def short_desc(self):
return "Schedule a run for all available spiders"
def run(self, args, opts):
url = 'http://localhost:6800/schedule.json'
for s in self.crawler.spiders.list():
values = {'project' : 'YOUR_PROJECT_NAME', 'spider' : s}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
log.msg(response)
Убедитесь, что включают в себя следующее в вашем settings.py
COMMANDS_MODULE = 'YOURPROJECTNAME.commands'
Затем из командной строки (в директории проекта) вы можете просто ввести
scrapy allcrawl
Отлично, я попробую это первым делом с утра. На данный момент у меня нет компьютера. Спасибо за помощь! – user1009453
Привет. Я попробовал ваше решение, но я получаю следующую ошибку импорта: ошибка импорта: нет имен модулей с командами Я установил строку «COMMANDS_MODULE =« YOURPROJECTNAME.commands »в файле настроек в каталоге проекта. Это верно? – user1009453
@ user1009453 Убедитесь, что у вашей папки команд есть '__init __. Py' – dru