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 初始化多维数组代码
Sep 06 Python
Python数据类型详解(四)字典:dict
May 12 Python
Django 导出 Excel 代码的实例详解
Aug 11 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
Jan 10 Python
Python将DataFrame的某一列作为index的方法
Apr 08 Python
Python 判断奇数偶数的方法
Dec 20 Python
python2.7 安装pip的方法步骤(管用)
May 05 Python
Python OpenCV实现鼠标画框效果
Aug 19 Python
django重新生成数据库中的某张表方法
Aug 28 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
Jan 15 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
Sep 30 Python
python从ftp获取文件并下载到本地
Dec 05 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中的cookie不用刷新就生效的方法
2012/02/04 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
基于jquery的tab切换 js原理
2010/04/01 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
2013/04/17 Javascript
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
jquery easyui中treegrid用法的简单实例
2014/02/18 Javascript
JS中数组Array的用法示例介绍
2014/02/20 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
使用jQuery管理选择结果
2015/01/20 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
2017/04/21 Javascript
Vue基础学习之项目整合及优化
2019/06/02 Javascript
axios实现文件上传并获取进度
2020/03/25 Javascript
python发腾讯微博代码分享
2014/01/10 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
python绘制动态曲线教程
2020/02/24 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
2021/01/29 Python
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
电大物流学生的自我评价
2013/10/25 职场文书
大四学年自我鉴定
2013/11/13 职场文书
好的演讲稿开场白
2013/12/30 职场文书
大学活动策划书范文
2014/01/10 职场文书
中学生运动会入场词
2014/02/12 职场文书
竞聘书格式及范文
2014/03/31 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
看雷锋电影观后感
2015/06/10 职场文书
python中print格式化输出的问题
2021/04/16 Python
python process模块的使用简介
2021/05/14 Python
Golang二维数组的使用方式
2021/05/28 Golang