將redis中的數據導入到本地MongoDB數據庫
創建一個process_items_mongodb.py文件(文件名自定義):
#!/usr/bin/env python # -*- coding:utf-8 -*- import redis import pymongo import json def process_item(): # 創建redis數據庫連接 rediscli = redis.Redis(host = "127.0.0.1", port = 6379, db = "0") # 創建MongoDB數據庫連接 mongocli = pymongo.MongoClient(host = "127.0.0.1", port = 27017) # 創建mongodb數據庫名稱 dbname = mongocli["youyuan"] # 創建mongodb數據庫youyuan的表名稱 sheetname = dbname["beijing_18_25_mm"] offset = 0 while True: # redis 數據表名 和 數據 source, data = rediscli.blpop("yy:items") offset += 1 # 將json對象轉換為Python對象 data = json.loads(data) # 將數據插入到sheetname表里 sheetname.insert(data) print offset if __name__ == "__main__": process_item()
將redis中的數據導入到本地MySQL數據庫
創建一個process_items_mysql.py文件(文件名自定義):
#!/usr/bin/env python # -*- coding:utf-8 -*- import redis import MySQLdb import json def process_item(): # 創建redis數據庫連接 rediscli = redis.Redis(host = "127.0.0.1", port = 6379, db = 0) # 創建mysql數據庫連接 mysqlcli = MySQLdb.connect(host = "127.0.0.1", port = 3306, \ user = "power", passwd = "60055969", db = "youyuan") offset = 0 while True: # 將數據從redis里pop出來 source :yy, data:items. source, data = rediscli.blpop("yy:items") item = json.loads(data) try: # 創建mysql 操作游標對象,可以執行mysql語句 cursor = mysqlcli.cursor() cursor.execute("insert into beijing_18_25_mm (username, age, header_url, images_url, content, place_from, education, hobby, source_url, source, time, spidername) values (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", [item['username'], item['age'], item['header_url'], item['images_url'], item['content'], item['place_from'], item['education'], item['hobby'], item['source_url'], item['sourec'], item['time'], item['spidername']]) # 提交事務 mysqlcli.commit() # 關閉游標 cursor.close() offset += 1 print offset except: pass if __name__ == "__main__": process_item()