对于我的梦幻足球队,我一直在从www.footywire.com上搜集数据,然后我试图通过弹性搜索将其导入Kibana。所有这些都是使用BeautifulSoup在Python 2.7中编写的。
所以对于每个球员来说,我正在抓取信息,比如球员拥有的球权数量,对方球队(等)以及竞争赛季的那一轮。每个项目还有一个唯一的键,基于玩家URL和被刮过的轮数。
这一切都运行良好...所有数据输出到.csv文件,我可以看到它全部出来我想要它。如果一名球员本赛季没有参加比赛,他们就会被跳过。
问题在于,每个被抓取的玩家只有一个条目被导入Kibana(通过elasticsearch);其余的都被删除了。我从Sense知道这一点:
当我进入Kibana时,我可以看到只有617项,而不是预期的6300 +。
我从日志中获得的唯一提示是"无法找到记录器elasticsearch.trace"信息。事情可能会在哪里崩溃?
注意:我不知道这里的代码类型是什么,因为实际的抓取本身是有效的。它只是弹性搜索中的输入问题。
编辑:我使用Logstash从elasticsearch导入Kibana。在logstash中没有为此项目设置任何内容,因此它刚刚开始使用新scrapy项目的默认设置。
[settings]
default = footywire.settings
[deploy]
#url = http://localhost:6800/
project = footywire
答案 0 :(得分:0)
正如@rajat正确指出的那样,elasticsearch需要为每个发送给它的文档提供唯一的ID。我错误地设置了它。