Python 抓取数据存储到Redis中
redis是一个key-value存储结构。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set 有序集合)和hash(哈希类型),数据存储如下图分析

为了分别为ID存入多个键值对,此次仅对Hash数据进行操作,例子如下
import os,sys
import requests
import bs4
import redis #连接Redis
r = redis.Redis(host='127.0.0.1',password='',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中的更多相关文章
- Python 抓取数据存储到Mysql中
# -*- coding: utf-8 -*- import os,sys import requests import bs4 import pymysql#import MySQLdb #连接MY ...
- python抓取数据,python使用socks代理抓取数据
在python中,正常的抓取数据直接使用urllib2 这个模块: import urllib2 url = 'http://fanyi.baidu.com/' stream = urllib2.ur ...
- python抓取数据构建词云
1.词云图 词云图,也叫文字云,是对文本中出现频率较高的"关键词"予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨. 先看几个词 ...
- 在mac下使用python抓取数据
2015已经过去,这是2016的第一篇博文! 祝大家新年快乐! 但是我还有好多期末考试! 还没开始复习,唉,一把辛酸泪! 最近看了一遍彦祖的文章叫做 iOS程序员如何使用Python写网路爬虫 所以自 ...
- python爬取数据保存到Excel中
# -*- conding:utf-8 -*- # 1.两页的内容 # 2.抓取每页title和URL # 3.根据title创建文件,发送URL请求,提取数据 import requests fro ...
- python抓取数据 常见反爬虫 情况
1.报文头信息: User-Agent Accept-Language 防盗链 上referer 随机生成不同的User-Agent构造报头 2.加抓取等待时间 每抓取一页都让它随机休息几秒,加入此 ...
- python 抓取数据,pandas进行数据分析并可视化展示
感觉要总结总结了,希望这次能写个系列文章分享分享心得,和大神们交流交流,提升提升. 因为半桶子水的水平,一直在想写什么,为什么写,怎么写. 直到现在找到了一种好的办法: 1.写什么 自己手上掌握的,工 ...
- python 抓取数据 存入 excel
import requestsimport datetimefrom random import choicefrom time import timefrom openpyxl import loa ...
- 使用python抓取数据之菜鸟爬虫1
''' Created on 2018-5-27 @author: yaoshuangqi ''' #本代码获取百度乐彩网站上的信息,只获取最近100期的双色球 import urllib.reque ...
随机推荐
- 13 Python之第一类对象闭包和迭代器
def fn(): print("我叫fn") fn() print(fn)## <function fn at 0x0000000001D12E18> f ...
- 百度的echarts报表数据直接显示
最近在使用百度的echarts开发,在使用过程中,遇到点需求,就是希望显示的数据直接在图标上显示,而不是鼠标滑动以后才显示,于是百度搜了下相关的文章正好找到了,然后使用了这个方法是可以用的,所以这里记 ...
- vim简明教程--半小时从入门到精通
https://download.csdn.net/download/qccz123456/10567716 vim三种模式:命令模式.插入模式.底行模式.使用ESC.i.:切换模式. vim [路径 ...
- 02-springmvc分布式项目dataService项目配置
spring总文件 文件名:applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> ...
- string::data
const char* data() const noexcept;注:同c_str #include <iostream>#include <string>#include ...
- spfa算法及判负环详解
spfa (Shortest Path Faster Algorithm) 是一种单源最短路径的算法,基于Bellman-Ford算法上由队列优化实现. 什么是Bellman_Ford,百度内 ...
- poi导出excel数据量过大
问题:使用poi导出excel,数据量过大导致内存溢出 解决思路:1.多sheet导出 2.生成多个excel打包下载 3.生成csv下载 本文使用的是第二个思路,代码如下: poiUtil工具类 p ...
- Tableau 分群
对数据的特征进行分析,分群. 数据选用的是Iris data 下载地址:http://archive.ics.uci.edu/ml/machine-learning-databases/iris/ 1 ...
- java 文件上传与解析(excel,txt)
excel上传与解析 https://blog.csdn.net/zsysu_it/article/details/79074067 txt解析 https://blog.csdn.net/CSDNw ...
- @EqualsAndHashCode
1.@Data注解包含了这些注解 * @see Getter * @see Setter * @see RequiredArgsConstructor * @see ToString * @see E ...