python - Scrapy 集群 kafka_monitor.py 中断

标签 python scrapy cluster-computing apache-kafka typeerror

Scrapy Clusters是扩展大型、连续的 scrapy 项目的一种很好的新方法。它在 VM 中设置,并与来自不同工具的多个实例一起运行。

我已经构建了 VM 并安装了必要的工具,例如 Redis、Kafka 和 zookeeper。

在第一次测试爬网之前,我只是停留在一条简单的线上,我不知道这是 python 问题、安装问题还是什么。

当我尝试

python kafka_monitor.py 运行

我得到:

Traceback (most recent call last): File "kafka_monitor.py", line 512, in sys.exit(main())
File "kafka_monitor.py", line 497, in main kafka_monitor.run()
File "kafka_monitor.py", line 413, in run self._setup_kafka()
File "kafka_monitor.py", line 232, in _setup_kafka ret_val = _hidden_setup()
File "/usr/local/lib/python2.7/dist-packages/scutils/method_timer.py", line 46, in f2 retval = f(*args)
File "kafka_monitor.py", line 218, in _hidden_setup self.kafka_conn = KafkaClient(self.settings['KAFKA_HOSTS'])

TypeError: ____init___() takes exactly 1 argument (2 given)

settings.py 包括:

KAFKA_HOSTS = 'localhost:9092'
KAFKA_INCOMING_TOPIC = 'demo.incoming'
KAFKA_GROUP = 'demo-group'
KAFKA_FEED_TIMEOUT = 5
KAFKA_CONN_TIMEOUT = 5

按照 Quick Start 的指示我也做了一个localsettings.py

# Here, 'scdev' is the host with Kafka, Redis, and Zookeeper
REDIS_HOST = 'scdev'
KAFKA_HOSTS = 'scdev:9092'
ZOOKEEPER_HOSTS = 'scdev:2181'

即使我进入 kafka_monitor.py 并更改第 218 行(从上面的初始错误回溯)

来自:

self.kafka_conn = KafkaClient(self.settings['KAFKA_HOSTS'])

收件人:

self.kafka_conn = KafkaClient(self.settings['scdev:9092'])

我收到同样的错误。

最佳答案

成功!

@Madison Bahmer 感谢您引导我朝着正确的方向前进。我只想说明我是如何让它运行的。

kafka_monitor.py 中实际代码的第一行(即第 3 行)如下:

from kafka.client import KafkaClient

我把它改成了:

from kafka import KafkaClient

这让它起作用了!

这是短视的解决方案吗?如果没有:

from kafka.client import KafkaClient

我不知道,但如果出现与此相关的特定问题,我会在未来更新。

关于python - Scrapy 集群 kafka_monitor.py 中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35834772/

相关文章:

python - 如何根据类型转换对象类型?

python - 值错误('Cannot process flags argument with a compiled pattern')

python - 具有不同位置的 NumPy 索引

image - 在scrapy中下载图像

python - 在 scrapy 中返回第一个遇到的结果

mysql - MyIsam vs NDB 插入

node.js - 将 Nodejs 服务器扩展到多个系统?

nosql - 种子节点如何在 Cassandra 集群中工作

Python - 使用列表创建字典

python - 如何在 Python 中创建单个 webdriver 实例?