zoukankan      html  css  js  c++  java
  • 将redis中数据保存到MongoDB

    # 数据的持久化操作redis---->MongoDB
    import redis
    from pymongo import MongoClient
    import json

    # 爬虫实现简单分布式:多个url放到列表里,往里不停放URL,程序循环取值,
    # 可以把url放到redis中,多台机器从redis中取值,爬取数据,实现简单分布式

    # 实例化redis客户端
    redis_client = redis.Redis(host='127.0.0.1',port=6379)

    # 实例化MongoDB客户端
    mongo_client = MongoClient(host='127.0.0.1',port=27017)

    # 指定链接的MongDB数据库、集合
    db = mongo_client['HN']
    col = db['HN']
    # 使用循环把redis中数据全部写入到MongoDB中
    while True:
    # 从redis中取出数据
    #blpop中出参数就是redis中的key-value的名为value的列表的名称,
    # 系统默认生成的与爬虫文件名类似的名称,形如=>(爬虫名:items)
    key,data = redis_client.blpop(['hn_spider:items'])
    print('key', key)
    print('data',data)
    #json.loads()函数是将json格式数据转换为字典
    # 把数据写入到MongoDB中
    col.insert_one(json.loads(data.decode()))


    # 关闭数据库
    mongo_client.close()
  • 相关阅读:
    ACM spiral grid
    ACM 数独
    Codeforces Round #242 (Div. 2) A. Squats
    Codeforces Round #242 (Div. 2) B. Megacity
    Codeforces Round #242 (Div. 2) C. Magic Formulas
    Coder-Strike 2014
    Coder-Strike 2014
    Coder-Strike 2014
    ACM Same binary weight
    C puzzles详解【13-15题】
  • 原文地址:https://www.cnblogs.com/lnd-blog/p/11706462.html
Copyright © 2011-2022 走看看