共计 2099 个字符,预计需要花费 6 分钟才能阅读完成。
这篇文章主要讲解了“分布式爬虫怎么处理 Redis 里的数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“分布式爬虫怎么处理 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 %(link)s % item
except KeyError:
print u Error procesing: %r % item
if __name__ == __main__ :
main()
存入 MySQL
1. 启动 mysql:mysql.server start(更平台不一样)
2. 登录到 root 用户:mysql -uroot -p
3. 创建数据库 youyuan:create database youyuan;
4. 切换到指定数据库:use youyuan
5. 创建表 beijing_18_25 以及所有字段的列名和数据类型。
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()
感谢各位的阅读,以上就是“分布式爬虫怎么处理 Redis 里的数据”的内容了,经过本文的学习后,相信大家对分布式爬虫怎么处理 Redis 里的数据这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!
正文完