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文件操作整理汇总
Oct 21 Python
Python CSV模块使用实例
Apr 09 Python
解决win64 Python下安装PIL出错问题(图解)
Sep 03 Python
Python实现多属性排序的方法
Dec 05 Python
python实现合并多个list及合并多个django QuerySet的方法示例
Jun 11 Python
python爬虫 爬取超清壁纸代码实例
Aug 16 Python
wxPython之wx.DC绘制形状
Nov 19 Python
推荐8款常用的Python GUI图形界面开发框架
Feb 23 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
May 25 Python
Django微信小程序后台开发教程的实现
Jun 03 Python
Python本地及虚拟解释器配置过程解析
Oct 13 Python
实例详解Python的进程,线程和协程
Mar 13 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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
php GD绘制24小时柱状图
2008/06/28 PHP
php+javascript的日历控件
2009/11/19 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
php的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
PHP时间和日期函数详解
2015/05/08 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
js利用Array.splice实现Array的insert/remove
2009/01/13 Javascript
Javascript 兼容firefox的一些问题
2009/05/21 Javascript
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
2012/02/27 Javascript
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
js选项卡的实现方法
2015/02/09 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
jquery插件jquery.nicescroll实现图片无滚动条左右拖拽的方法
2015/08/10 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
JavaScript订单操作小程序完整版
2017/06/23 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
基于JS实现一个随机生成验证码功能
2019/05/29 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
Python实现删除文件但保留指定文件
2015/06/21 Python
浅谈python中截取字符函数strip,lstrip,rstrip
2015/07/17 Python
python 读取修改pcap包的例子
2019/07/23 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
Skyscanner台湾:全球知名的旅行比价引擎
2018/07/01 全球购物
内刊编辑求职自荐书范文
2014/02/19 职场文书
幼儿园区域活动总结
2014/05/08 职场文书
书香家庭事迹材料
2014/05/09 职场文书
总经理任命书范本
2014/06/05 职场文书
创业计划书之游泳馆
2019/09/16 职场文书