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服务器拒绝服务攻击代码
Jan 16 Python
Python专用方法与迭代机制实例分析
Sep 15 Python
Python新手在作用域方面经常容易碰到的问题
Apr 03 Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 Python
Python多图片合并PDF的方法
Jan 03 Python
使用Python操作FTP实现上传和下载的方法
Apr 01 Python
python文件选择对话框的操作方法
Jun 27 Python
python 搜索大文件的实例代码
Jul 08 Python
Python3从零开始搭建一个语音对话机器人的实现
Aug 23 Python
Python如何把Spark数据写入ElasticSearch
Apr 18 Python
python 下划线的不同用法
Oct 24 Python
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
Jun 11 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
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
2010/09/15 Javascript
高效的表格行背景隔行变色及选定高亮的JS代码
2010/12/04 Javascript
jquery的$getjson调用并获取远程的JSON字符串问题
2012/12/10 Javascript
简单实例处理url特殊符号&处理(2种方法)
2013/04/02 Javascript
jquery中文乱码的多种解决方法
2013/06/21 Javascript
js冒泡法和数组转换成字符串示例代码
2013/08/14 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
Node.js的文件权限及读写flag详解
2016/10/11 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
js图片无缝滚动插件使用详解
2020/05/26 Javascript
react 生命周期实例分析
2020/05/18 Javascript
vue Element左侧无限级菜单实现
2020/06/10 Javascript
vue实现登录功能
2020/12/31 Vue.js
使用python实现扫描端口示例
2014/03/29 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
2018/05/28 Python
python try except 捕获所有异常的实例
2018/10/18 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
python中常见错误及解决方法
2020/06/21 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
python mock测试的示例
2020/10/19 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
南威尔士家居商店:Leekes
2016/10/25 全球购物
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
英国鹦鹉店:Parrot Essentials
2018/12/03 全球购物
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
2014年幼儿园国庆主题活动方案
2014/09/16 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
Python中with上下文管理协议的作用及用法
2022/03/18 Python