Использование пользовательского промежуточного программного обеспечения в автономном скриптовом скрипте - PullRequest
0 голосов
/ 24 мая 2018

Я пишу автономный сценарий очистки (update.py), который реализует специальное промежуточное ПО для загрузчика.

В настоящее время сценарий использует API CrawlerProcess (), задокументированный здесь и здесь .

Это выглядит примерно так:

from scrapy.crawler import CrawlerProcess
import scrapy

class CustomMiddleware(object):
.... custom middleware definition

settings = {'LOG_LEVEL' :'INFO',
            'COOKIES_ENABLED' : False,
            'DOWNLOADER_MIDDLEWARES' : {
            'update.CustomMiddleware': 400,
            }
            }

class CarvanaSpider(scrapy.Spider)
... Spider definition

process = CrawlerProcess(settings)
process.crawl(CarvanaSpider)
process.start()

Сценарий возвращает ошибку: «Нет модуля с именем« update »»

Если я заменю update.CustomMiddleware с CustomMiddleware возвращает «Неправильный путь»

Мне известно об утилите get_project_settings (), но мой сценарий не может находиться в папке проекта и должен иметь возможность работать без каких-либо дополнительных файлов.

Это достижимо ?, если так, каков наилучший способ достичь этого?

1 Ответ

0 голосов
/ 19 июля 2019

вам нужен отдельный файл промежуточного программного обеспечения и импорт промежуточного программного обеспечения поверх сценария.

класс CustomMiddleware (объект): .... определение пользовательского промежуточного программного обеспечения

этот класс будет находиться в middleware.py

и в настройках добавьте только вот так

settings = {'LOG_LEVEL' :'INFO',
            'COOKIES_ENABLED' : False,
            'DOWNLOADER_MIDDLEWARES' : {
            'middleware.CustomMiddleware': 400,
            }
            }

и вместе с middleware.py, и вы создадите сценарий в одном каталоге.

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