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 21 Python
Python random模块常用方法
Nov 03 Python
在Django的session中使用User对象的方法
Jul 23 Python
Python进行数据提取的方法总结
Aug 22 Python
python 字符串只保留汉字的方法
Nov 16 Python
Django异步任务之Celery的基本使用
Mar 23 Python
简单了解Python生成器是什么
Jul 02 Python
Django对数据库进行添加与更新的例子
Jul 12 Python
详解如何用TensorFlow训练和识别/分类自定义图片
Aug 05 Python
python类的实例化问题解决
Aug 31 Python
详解python 支持向量机(SVM)算法
Sep 18 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 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
NT IIS下用ODBC连接数据库
2006/10/09 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
javascript 触发HTML元素绑定的函数
2010/09/11 Javascript
JS验证身份证有效性示例
2013/10/11 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
简述vue路由打开一个新的窗口的方法
2018/11/29 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
详细分析vue表单数据的绑定
2020/07/20 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
django form和field具体方法和属性说明
2020/07/09 Python
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
经贸日语专业个人求职信范文
2013/12/28 职场文书
共产党员公开承诺书范文
2014/03/28 职场文书
感恩老师的演讲稿
2014/05/06 职场文书
生日宴会策划方案
2014/06/03 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书
财务人员入职担保书
2015/09/22 职场文书
MySQL中in和exists区别详解
2021/06/03 MySQL
MySQL自定义函数及触发器
2022/08/05 MySQL