# 數據的持久化操做redis---->MongoDBimport redisfrom pymongo import MongoClientimport 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()