У меня есть несколько вопросов, во-первых, когда я запускаю эту команду
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?
Но я люблю использовать вместо этого последнюю версию.
Заранее спасибо!