ModuleNotFoundError: Нет модуля с именем 'frontera.contrib.scrapy.middlewares.seeds Frontera - PullRequest
0 голосов
/ 07 июня 2019

У меня есть несколько вопросов, во-первых, когда я запускаю эту команду

python -m frontera.utils.add_seeds --config tutorial.config.dbw --seeds-file seeds.txt

scrapy crawl tutorial -L INFO -s SPIDER_PARTITION_ID=0

я получил эту ошибку

ModuleNotFoundError: No module named 'frontera.contrib.scrapy.middlewares.seeds'

https://imgur.com/a/w1atD1n

после удаления я могу запустить scrapy, но 0 страница просканирована

SPIDER_MIDDLEWARES = { 'frontera.contrib.scrapy.middlewares.schedulers.SchedulerSpiderMiddleware': 999, ̶ ̶ ̶ ̶'̶f̶r̶o̶n̶t̶e̶r̶a̶.̶c̶o̶n̶t̶r̶i̶b̶.̶s̶c̶r̶a̶p̶y̶.̶m̶i̶d̶d̶l̶e̶w̶a̶r̶e̶s̶.̶s̶e̶e̶d̶s̶.̶f̶i̶l̶e̶.̶F̶i̶l̶e̶S̶e̶e̶d̶L̶o̶a̶d̶e̶r̶'̶:̶ ̶1̶,̶ }

https://imgur.com/a/PCu1idq

кроме того, моя кафка не потребляла никаких сообщений

https://imgur.com/a/xggjV1e

Все мои настройки следуют руководству по настройке кластера официальных документов frontera.

Для проблем с кафкой. после того, как я добавлю эту строку

MESSAGE_BUS = 'frontera.contrib.messagebus.kafkabus.MessageBus'

и удалите

̶ ̶ ̶ ̶'̶f̶r̶o̶n̶t̶e̶r̶a̶.̶c̶o̶n̶t̶r̶i̶b̶.̶s̶c̶r̶a̶p̶y̶.̶m̶i̶d̶d̶l̶e̶w̶a̶r̶e̶s̶.̶s̶e̶e̶d̶s̶.̶f̶i̶l̶e̶.̶F̶i̶l̶e̶S̶e̶e̶d̶L̶o̶a̶d̶e̶r̶'̶:̶ ̶1̶,̶

У меня возникла эта проблема, когда я запускаю db worker, stategic work и crawler.

https://imgur.com/a/ZyRmrJH

мой конфиг common.py

from __future__ import absolute_import
from frontera.settings.default_settings import MIDDLEWARES

MAX_NEXT_REQUESTS = 512
SPIDER_FEED_PARTITIONS = 2 # number of spider processes
SPIDER_LOG_PARTITIONS = 2 # worker instances
MIDDLEWARES.extend([
    'frontera.contrib.middlewares.domain.DomainMiddleware',
    'frontera.contrib.middlewares.fingerprint.DomainFingerprintMiddleware'
])

QUEUE_HOSTNAME_PARTITIONING = True
KAFKA_LOCATION = 'localhost:9092' 
URL_FINGERPRINT_FUNCTION='frontera.utils.fingerprint.hostname_local_fingerprint'
MESSAGE_BUS = 'frontera.contrib.messagebus.kafkabus.MessageBus'
SPIDER_LOG_TOPIC = 'frontier-done'
SPIDER_FEED_TOPIC = 'frontier-todo'
SCORING_TOPIC = 'frontier-score'
* * Dbw.py тысяча сорок-девять
from __future__ import absolute_import
from .worker import *
LOGGING_CONFIG='logging-db.conf' 

spider.py

from __future__ import absolute_import
from .common import *
BACKEND = 'frontera.contrib.backends.remote.messagebus.MessageBusBackend'
KAFKA_GET_TIMEOUT = 0.5
LOCAL_MODE = False  # by default Frontera is prepared for single process mode

sw.py

from __future__ import absolute_import
from .worker import *
CRAWLING_STRATEGY = 'frontera.strategy.basic.BasicCrawlingStrategy' # path to the crawling strategy class
LOGGING_CONFIG='logging-sw.conf' # if needed

worker.py

from __future__ import absolute_import
from .common import *
BACKEND = 'frontera.contrib.backends.hbase.HBaseBackend'
HBASE_DROP_ALL_TABLES = True
MAX_NEXT_REQUESTS = 2048
NEW_BATCH_DELAY = 3.0
HBASE_THRIFT_HOST = 'localhost' # HBase Thrift server host and port
HBASE_THRIFT_PORT = 9090

как создать тему кафки

kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic frontier-done

kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic frontier-todo

kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic frontier-score

Я установил раздел на 2 в common.py,

SPIDER_FEED_PARTITIONS = 2 # number of spider processes
SPIDER_LOG_PARTITIONS = 2 # worker instances

как мне начать кафку

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic frontier-done --from-beginning

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic frontier-todo --from-beginning

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic frontier-score --from-beginning

Версия инструментов Название: Фронтера Версия: 0.8.1 Название: Scrapy Версия: 1.6.0

Имя: Python Версия: 3.7.3 Имя: Кафка Версия: 2.2.1

Я думаю, что документ не обновился до v0.8.1, он все еще остается на v0.8.0.1. Должен ли я понизить frontera до настольной версии v0.8? Но я люблю использовать вместо этого последнюю версию.

Заранее спасибо!

...