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 中整型对象存储的位置
May 16 Python
Python中的Descriptor描述符学习教程
Jun 02 Python
python实现图片处理和特征提取详解
Nov 13 Python
《Python学习手册》学习总结
Jan 17 Python
selenium 安装与chromedriver安装的方法步骤
Jun 12 Python
Python学习笔记之Break和Continue用法分析
Aug 14 Python
Python 实现向word(docx)中输出
Feb 13 Python
Python 实现打印单词的菱形字符图案
Apr 12 Python
Python中and和or如何使用
May 28 Python
python语言中有算法吗
Jun 16 Python
使用Keras建立模型并训练等一系列操作方式
Jul 02 Python
Python 实现RSA加解密文本文件
Dec 30 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
根据json字符串生成Html的一种方式
2013/01/09 Javascript
jquery 实现两级导航菜单附效果图
2014/03/07 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
使用Raygun对Node.js应用进行错误处理的方法
2015/06/23 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
JS实现简单的二元方程计算器功能示例
2017/01/03 Javascript
JavaScript日期选择功能示例
2017/01/16 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
JavaScript实现的斑马线表格效果【隔行变色】
2017/09/18 Javascript
微信小程序使用Socket的实例
2017/09/19 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
浅析vue-router中params和query的区别
2019/12/24 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
python实例化对象的具体方法
2020/06/17 Python
自学python用什么系统好
2020/06/23 Python
详解Python多线程下的list
2020/07/03 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
MIXIT官网:俄罗斯最大的化妆品公司之一
2020/01/25 全球购物
行政助理的职责
2013/11/14 职场文书
法律专业推荐信范文
2013/11/29 职场文书
畜牧兽医本科生的自我评价
2014/03/03 职场文书
公司营业员的自我评价
2014/03/04 职场文书
毕业自我鉴定总结
2014/03/24 职场文书
新年团拜会主持词
2014/04/02 职场文书
共青团员自我评价
2015/03/10 职场文书
详细介绍python类及类的用法
2021/05/31 Python
讨论nginx location 顺序问题
2022/05/30 Servers