Scrapy из другого сценария - PullRequest
0 голосов
/ 25 апреля 2020

Я пишу python программу, которая нуждается в данных из inte rnet. Поэтому я написал несколько пауков Scrapy, которые собираются на нескольких страницах и очищают данные. После этого они хранят данные в файле Excel, который является моей базой данных. Для этого я написал собственный класс, который обрабатывает данные в файле Excel так, как мне нужно. Так что это работает. Теперь на мой вопрос:

Я хочу, чтобы пауки запускались с другого python сценария. Я нашел некоторый код, чтобы быть в состоянии сделать это. Но мне также нужно импортировать все настройки из проекта Scrapy и конвейеров, элементы и т. Д. c. также. Я не могу использовать

    get_project_settings()

, потому что скрипт находится в другом каталоге (папка проекта Scrapy находится в том же каталоге, что и скрипт, с которого я хочу его запустить): Вот что я получил до сих пор:

    from scrapy.crawler import CrawlerProcess
    from desktop.Project.bots.question.spider import spider_test

    process = CrawlerProcess(settings={'Here I need to import the settings file from the spiders Project' })
    process.crawl(spider_test)
    process.start()

Паук работает, но мне нужны мои настройки. Он работает совершенно нормально, когда я помещаю этот скрипт в ту же папку проекта, в которой находятся мои настройки, и использую следующий код:

    from scrapy.crawler import CrawlerProcess
    from desktop.question.spider import spider_test

    process = CrawlerProcess(get_project_settings())
    process.crawl(spider_test)
    process.start()

Я также не хочу переписывать все настройки из файла настроек в качестве dict и реализовать его вручную следующим образом:

   process = CrawlerProcess(settings={
"FEEDS": {
    "items.json": {"format": "json"},
},
})

Последний код является просто примером из документов Scrapy, очевидно, мне не нужен никакой экспортер. Я уже пытался просто импортировать нужный мне файл настроек и установить его в качестве параметра настроек, но для настроек параметров нужен тип словаря python.

   process = CrawlerProcess(settings={})

Я действительно надеюсь, что кто-нибудь может помочь мне объяснить, как решить проблему.

1 Ответ

0 голосов
/ 25 апреля 2020

добавить новый файл (example.py) в ваш проект

import os
while True:
    os.system('scrapy crawl verbos')

затем

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