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下载歌词并嵌入歌曲文件中的实现代码
Nov 13 Python
剖析Python的Twisted框架的核心特性
May 25 Python
python2 与python3的print区别小结
Jan 16 Python
Django rest framework基本介绍与代码示例
Jan 26 Python
python scatter散点图用循环分类法加图例
Mar 19 Python
python程序控制NAO机器人行走
Apr 29 Python
Python实现FTP文件传输的实例
Jul 07 Python
Python的互斥锁与信号量详解
Sep 12 Python
Python API len函数操作过程解析
Mar 05 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
Jan 12 Python
深入理解python多线程编程
Apr 18 Python
详解Python中下划线的5种含义
Jul 15 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详细彻底学习Smarty
2008/03/27 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
js 解决“options为空或不是对象”
2008/12/22 Javascript
基于jQuery实现的Ajax 验证用户名是否存在的实现代码
2011/04/06 Javascript
js获取IP和PcName(IE)在vs中可用
2013/08/02 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
jQuery读取XML文件内容的方法
2015/03/09 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
node.js中cluster的使用教程
2017/06/09 Javascript
用原生JS实现简单的多选框功能
2017/06/12 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
微信小程序使用canvas的画图操作示例
2019/01/18 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
python fabric使用笔记
2015/05/09 Python
Python函数返回值实例分析
2015/06/08 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
Python使用爬虫爬取静态网页图片的方法详解
2018/06/05 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
浅谈Python 参数与变量
2020/06/20 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
音乐专业应届生教师求职信
2013/11/04 职场文书
超市重阳节活动方案
2014/02/10 职场文书
天猫活动策划方案
2014/08/21 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
2014年个人师德工作总结
2014/12/04 职场文书
幼师自荐信范文
2015/03/06 职场文书
经典法律座右铭(50句)
2019/08/15 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python
SQL SERVER触发器详解
2022/02/24 SQL Server