Могу ли я выполнить scrapy (python) сканирование вне проекта dir?

Документы говорят, что я могу выполнить команду обхода внутри проекта dir:

scrapy crawl tutor -o items.json -t json 

но мне действительно нужно выполнить его в моем коде python (файл python не находится внутри текущего проекта dir)

Есть ли какой-либо подход, соответствующий моему требованию?

Мое дерево проекта:

 . ├── etao │  ├── etao │  │  ├── __init__.py │  │  ├── items.py │  │  ├── pipelines.py │  │  ├── settings.py │  │  └── spiders │  │  ├── __init__.py │  │  ├── etao_spider.py │  ├── items.json │  ├── scrapy.cfg │  └── start.py └── start.py <-------------- I want to execute the script here. 

Любой здесь мой код следил за этой ссылкой, но он не работает:

 #!/usr/bin/env python import os #Must be at the top before other imports os.environ.setdefault('SCRAPY_SETTINGS_MODULE', 'project.settings') from scrapy import project from scrapy.conf import settings from scrapy.crawler import CrawlerProcess class CrawlerScript(): def __init__(self): self.crawler = CrawlerProcess(settings) if not hasattr(project, 'crawler'): self.crawler.install() self.crawler.configure() def crawl(self, spider_name): spider = self.crawler.spiders.create(spider_name) <--- line 19 if spider: self.crawler.queue.append_spider(spider) self.crawler.start() self.crawler.stop() # main if __name__ == '__main__': crawler = CrawlerScript() crawler.crawl('etao') 

ошибка:

 line 19: KeyError: 'Spider not found: etao' 

  • Локально запустите всех пауков в Scrapy
  • Анализ аякс-ответов для получения окончательного содержания url в Scrapy?
  • Как читать содержимое веб-сайта?
  • Веб-поиск или очистка или сканирование? Какой инструмент / библиотеку следует использовать?
  • Scrapy - как идентифицировать уже очищенные URL-адреса
  • Python, Selenium: «Элемент больше не привязан к DOM»
  • Передача аргументов в process.crawl в Scrapy python
  • Кто-нибудь знает хороший веб-искатель на основе Python, который я мог бы использовать?
  • One Solution collect form web for “Могу ли я выполнить scrapy (python) сканирование вне проекта dir?”

    вы можете фактически вызвать crawlprocess самостоятельно …

    это что-то вроде

     from scrapy.crawler import CrawlerProcess from scrapy.conf import settings settings.overrides.update({}) # your settings crawlerProcess = CrawlerProcess(settings) crawlerProcess.install() crawlerProcess.configure() crawlerProcess.crawl(spider) # your spider here 

    Кредиты для @warwaruk.

    Python - лучший язык программирования в мире.