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中使用OpenCV进行人脸检测的例子
Apr 18 Python
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
Jul 12 Python
Python实现一个简单的验证码程序
Nov 03 Python
使用Python处理Excel表格的简单方法
Jun 07 Python
解决Python安装后pip不能用的问题
Jun 12 Python
Python提取特定时间段内数据的方法实例
Apr 01 Python
Python3+Appium安装使用教程
Jul 05 Python
基于python全局设置id 自动化测试元素定位过程解析
Sep 04 Python
Python hashlib常见摘要算法详解
Jan 13 Python
Python库skimage绘制二值图像代码实例
Apr 10 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
Jun 03 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 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
javascript 类型判断代码分析
2010/03/28 Javascript
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
jQuery-serialize()输出序列化form表单值的方法
2012/12/26 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
基于slideout.js实现移动端侧边栏滑动特效
2016/11/28 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
JavaScript操作文件_动力节点Java学院整理
2017/06/30 Javascript
JS非空验证及邮箱验证的实例
2017/08/11 Javascript
angular之ng-template模板加载
2017/11/09 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
vue中input的v-model清空操作
2019/09/06 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
python正则分析nginx的访问日志
2017/01/17 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
2018/01/29 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
2019/08/29 Python
对django layer弹窗组件的使用详解
2019/08/31 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
捐助贫困学生倡议书
2014/05/16 职场文书
临床医学生职业规划书范文
2014/10/25 职场文书
2015夏季作息时间调整通知
2015/04/24 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python
python实现学生信息管理系统(面向对象)
2022/06/05 Python