分布式爬虫怎么处理Redis里的数据

92次阅读
没有评论

共计 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 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-28发表,共计2099字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)