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编写网页爬虫脚本并实现APScheduler调度
Jul 28 Python
在Python 3中实现类型检查器的简单方法
Jul 03 Python
Python实现快速多线程ping的方法
Jul 15 Python
Python实现PS滤镜功能之波浪特效示例
Jan 26 Python
Pycharm保存不能自动同步到远程服务器的解决方法
Jun 27 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
利用python在大量数据文件下删除某一行的例子
Aug 21 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
Oct 11 Python
Python 项目转化为so文件实例
Dec 23 Python
Python OpenCV读取显示视频的方法示例
Feb 20 Python
python:批量统计xml中各类目标的数量案例
Mar 10 Python
Python基础之进程详解
May 21 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和MySql来与ODBC数据连接
2006/10/09 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
理解JavaScript中的事件
2006/09/23 Javascript
js如何获取兄弟、父类等节点
2014/01/06 Javascript
简单谈谈json跨域
2016/03/13 Javascript
IE和Firefox之间在JavaScript语法上的差异
2016/04/22 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
Vuejs 页面的区域化与组件封装的实现
2017/09/11 Javascript
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
Vue Cli3 打包配置并自动忽略console.log语句的方法
2020/04/23 Javascript
django 创建过滤器的实例详解
2017/08/14 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
超简单使用Python换脸实例
2019/03/27 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
python写一个随机点名软件的实例
2019/11/28 Python
python字符串反转的四种方法详解
2019/12/02 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
如何让python的运行速度得到提升
2020/07/08 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
最新计算机专业自荐信
2013/10/16 职场文书
环境科学毕业生自荐信
2013/11/21 职场文书
干部行政关系介绍信
2014/01/17 职场文书
幼儿园评语大全
2014/04/17 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
课内比教学心得体会
2014/09/09 职场文书
2014年减负工作总结
2014/12/10 职场文书
学校百日安全活动总结
2015/05/07 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书