Python 抓取数据存储到Redis中的操作


Posted in Python onJuly 16, 2020

redis是一个key-value存储结构。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set 有序集合)和hash(哈希类型),数据存储如下图分析

Python 抓取数据存储到Redis中的操作

为了分别为ID存入多个键值对,此次仅对Hash数据进行操作,例子如下

import os,sys
import requests
import bs4
import redis

#连接Redis
r = redis.Redis(host='127.0.0.1',password='123456',port=6379)

html = 'https://www.dongmanmanhua.cn/dailySchedule?weekday=MONDAY'
result = requests.get(html)
texts = result.text

data = bs4.BeautifulSoup(texts,'html.parser');
lidata = data.select('div#dailyList ul.daily_card li')
#print(lidata)

for x in lidata:
 did = x.get('data-title-no')
 name = x.select('p.subj')
 name1 = name[0].get_text()
 url = x.a.get('href')
 story = x.a.p
 story1 = story.string
 user = x.select('p.author')
 user1 = user[0].get_text()
 like = x.select('em.grade_num')
 like1 = like[0].get_text()

 rt = {'did':did,'name':name1,'url':url,'story':story1,'user':user1,'like':like1}

 #写数据到Redis
 idkey = 'name'+did
 #hash表数据写入命令hmget,可以一次写入多个键值对
 r.hmget(idkey,rt)
  
 #写入命令hset,一次只能写入一个键值对
 r.hset(idkey,'did',did)
 r.hset(idkey,'name',name1)
 r.hset(idkey,'story',story1)
 r.hset(idkey,'url',url)
 r.hset(idkey,'user',user1)
 r.hset(idkey,'like',like1)
 print('dman哈希表写入成功')
 print(r.hget(idkey,'did'))
 print(r.hget(idkey,'name'))

Hash 类其他常用操作

hset(name,key,value) :name对应的hash中设置一个键值对,当name对应的hash中不存在当前key则创建(相当于添加) ,否则做更改操作

hget(name,key) : 在name对应的hash中获取根据key获取value

hmset(name,mapping) :在name对应的hash中批量设置键值对 ,mapping:例 {'k1':'v1','k2':'v2'}

hmget(name,keys,*args) :在name对应的hash中获取多个key的值 ,keys:要获取key的集合,例 ['k1','k2'];*args:要获取的key,如:k1,k2,k3

hgetall(name):获取name对应hash的所有键值

hlen(name):获取name对应的hash中键值的个数

hkeys(name):获取name对应的hash中所有的key的值

hvals(name):获取name对应的hash中所有的value的值

hexists(name,key):检查name对应的hash是否存在当前传入的key

hdel(name,*keys):将name对应的hash中指定key的键值对删除

补充知识:将python数据存入redis中,键取字符串类型

使用redis中的字符串类型键来存储一个python的字典。首先需要使用json模块的dumps方法将python字典转换为字符串,然后存入redis,从redis中取出来必须使用json.loads方法转换为python的字典(其他python数据结构处理方式也一样)。

如果不使用json.loads方法转换则会发现从redis中取出的数据的数据类型是bytes.

Python 抓取数据存储到Redis中的操作

当使用的python数据结构是列表时:

Python 抓取数据存储到Redis中的操作

以上这篇Python 抓取数据存储到Redis中的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 执行字符串表达式函数(eval exec execfile)
Aug 11 Python
python3连接MySQL数据库实例详解
May 24 Python
python利用Tesseract识别验证码的方法示例
Jan 21 Python
详解如何设置Python环境变量?
May 13 Python
Python closure闭包解释及其注意点详解
Aug 28 Python
通过python扫描二维码/条形码并打印数据
Nov 14 Python
Python3并发写文件与Python对比
Nov 20 Python
pyftplib中文乱码问题解决方案
Jan 11 Python
Python3.6 中的pyinstaller安装和使用教程
Mar 16 Python
pyinstaller将含有多个py文件的python程序做成exe
Apr 29 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
Jun 10 Python
Python中Selenium对Cookie的操作方法
Jul 09 Python
django filter过滤器实现显示某个类型指定字段不同值方式
Jul 16 #Python
解决python对齐错误的方法
Jul 16 #Python
Python爬虫实例——爬取美团美食数据
Jul 15 #Python
django Model层常用验证器及自定义验证器详解
Jul 15 #Python
浅谈Django前端后端值传递问题
Jul 15 #Python
浅谈python出错时traceback的解读
Jul 15 #Python
Django视图、传参和forms验证操作
Jul 15 #Python
You might like
php UTF8 文件的签名问题
2009/10/30 PHP
PHP利用Socket获取网站的SSL证书与公钥
2017/06/18 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
php集成开发环境详解
2019/09/24 PHP
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
NodeJS Web应用监听sock文件实例
2015/02/18 NodeJs
javascript获得当前的信息的一些常用命令
2015/02/25 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
用jQuery获取table中行id和td值的实现代码
2016/05/19 Javascript
vue loadmore组件上拉加载更多功能示例代码
2017/07/19 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
深入理解 webpack 文件打包机制(小结)
2018/01/08 Javascript
JavaScript实现构造json数组的方法分析
2018/08/17 Javascript
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
简单了解JavaScript中常见的反模式
2019/06/21 Javascript
js实现简单分页导航栏效果
2019/06/28 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
使用Python生成随机密码的示例分享
2016/02/18 Python
python验证码识别教程之滑动验证码
2018/06/04 Python
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
报社实习生自荐信
2014/01/24 职场文书
拒绝黄毒毒宣传标语
2014/06/26 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
党的群众路线教育实践活动总结材料
2014/10/30 职场文书
2015年元旦联欢晚会活动总结
2014/11/28 职场文书
南湾猴岛导游词
2015/02/09 职场文书
节约用电通知
2015/04/25 职场文书
Redis主从复制操作和配置详情
2022/09/23 Redis