Могу ли я выполнить 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' 

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.

  • Извлеките ссылки для определенного раздела только из blogspot с помощью BeautifulSoup
  • Каковы наилучшие готовые библиотеки для выполнения веб-сканирования в Python
  • Нажмите кнопки с изображениями
  • Разница между BeautifulSoup и искателем Scrapy?
  • Не удалось получить доступ к request.response.meta из скрипта Scrapy
  • scrapy - странный код ошибки, который не может вызвать конвейер
  • Как работают правила Scrapy с помощью паука сканирования
  • Scrapy - регистрация в файл и stdout одновременно, с именами паук
  •  
    Interesting Posts for Van-Lav

    Получение страницы «Разрешение отказа» в администраторе, в то время как у пользователя есть разрешение

    Движение Дроуна нестабильно с темами ROS

    Добавление дополнения к виджору tkinter только с одной стороны

    Apache mod_wsgi и php в том же домене

    Что записать в файл журнала?

    Дескриптор FREAK с Opencv Python

    Как исключить каталоги при использовании os.walk ()? Другие методы не сработали

    Что означают разные значения аргумента вида в scipy.interpolate.interp1d?

    anaconda – переменная среды пути в окнах

    Это плохая идея для разработки и разработки брандмауэров приложений python, а затем после этого попытайтесь применить к нему графический интерфейс?

    Pymongo отказывается от подключения 27017

    python получает только атрибут класса без суперклассов

    Численная сумма значений в подмассивах между парами индексов

    В Python, когда использовать словарь, список или набор?

    Что делает оператор ** maths в Python?

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