pyspider 爬取的数据无法存入 MongoDB

发布于 2022-09-04 18:52:56 字数 1367 浏览 8 评论 0

代码在没有override on_result函数时,可以将爬取的数据存入pyspider自带的resultdb中。
但是override以后却无法将结果存入Mongodb中。
congfig.json文件:

{
      "taskdb": "mongodb+taskdb://127.0.0.1:27017/pyspider_taskdb",
      "projectdb": "mongodb+projectdb://127.0.0.1:27017/pyspider_projectdb",
      "resultdb": "mongodb+resultdb://127.0.0.1:27017/pyspider_resultdb",
      "message_queue": "redis://127.0.0.1:6379/db",
      "webui": {
                    "port": 5001
    }
}

重载的on_result函数:

    def on_result(self, result):
        if not result:
            return

        client = pymongo.MongoClient(host='127.0.0.1', port=27017)
        db = client['pyspider_resultdb']
        coll = db['website']

        data = {
              'title': result['title'],
              'tags': result['tags'],
              'description': result['description'],
              'website_url': result['website_url'],
              'image_url_list': result['image_url_list']
        }

        data_id = coll.insert(data)
        print (data_id)

运行后没有报错,一切正常,但是mongo中却只有两个数据库,没有pyspider_resultdb:
图片描述

每次新建的任务都会在pyspider_taskdb里更新,但是不知道结果去哪了。
python版本2.7,mongodb版本3.4, pymongo版本3.4。
搞了好久实在不知道问题出在哪里,恳请各位高人指点,谢谢~!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

关于从前 2022-09-11 18:52:56

pyspider 会自动去重,抓过的连接不会重新抓取,你采取了什么措施让它重抓了吗?
例如 http://docs.pyspider.org/en/l...

不回头走下去 2022-09-11 18:52:56

是不是没有commit啊

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文