分布式redis的数据如何整到mysql_分布式爬虫处理Redis里的数据操作步骤

存入MongoDB

1.启动MongoDB数据库:sudo mongod

2.执行下面程序:py2 process_youyuan_mongodb.py

# process_youyuan_mongodb.py

# -*- coding: utf-8 -*-

import json

import redis

import pymongo

def main():

# 指定Redis数据库信息

rediscli = redis.StrictRedis(host='192.168.199.108', port=6379, db=0)

# 指定MongoDB数据库信息

mongocli = pymongo.MongoClient(host='localhost', port=27017)

# 创建数据库名

db = mongocli['youyuan']

# 创建表名

sheet = db['beijing_18_25']

while True:

# FIFO模式为 blpop,LIFO模式为 brpop,获取键值

source, data = rediscli.blpop(["youyuan:items"])

item = json.loads(data)

sheet.insert(item)

try:

print u"Processing: %(name)s " % item

except KeyError:

print u"Error procesing: %r" % item

if __name__ == '__main__':

main()

c23bfda1281bed1f18e89118d39354a4.png

存入 MySQL

1.启动mysql:mysql.server start(更平台不一样)

2.登录到root用户:mysql -uroot -p

3.创建数据库youyuan:create database youyuan;

4.切换到指定数据库:use youyuan

5.创建表beijing_18_25以及所有字段的列名和数据类型。

3953e4ad5bf47772502c863d65c07ed9.png

6.执行下面程序:py2 process_youyuan_mysql.py

#process_youyuan_mysql.py

# -*- coding: utf-8 -*-

import json

import redis

import MySQLdb

def main():

# 指定redis数据库信息

rediscli = redis.StrictRedis(host='192.168.199.108', port = 6379, db = 0)

# 指定mysql数据库

mysqlcli = MySQLdb.connect(host='127.0.0.1', user='power', passwd='xxxxxxx', db = 'youyuan', port=3306, use_unicode=True)

while True:

# FIFO模式为 blpop,LIFO模式为 brpop,获取键值

source, data = rediscli.blpop(["youyuan:items"])

item = json.loads(data)

try:

# 使用cursor()方法获取操作游标

cur = mysqlcli.cursor()

# 使用execute方法执行SQL INSERT语句

cur.execute("INSERT INTO beijing_18_25 (username, crawled, age, spider, header_url, source, pic_urls, monologue, source_url) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s )", [item['username'], item['crawled'], item['age'], item['spider'], item['header_url'], item['source'], item['pic_urls'], item['monologue'], item['source_url']])

# 提交sql事务

mysqlcli.commit()

#关闭本次操作

cur.close()

print "inserted %s" % item['source_url']

except MySQLdb.Error,e:

print "Mysql Error %d: %s" % (e.args[0], e.args[1])

if __name__ == '__main__':

main()

c21f219d7264194191e9d936239b51dc.png

总结

以上所述是小编给大家介绍的分布式爬虫处理Redis里的数据操作步骤,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值