Python 抓取數(shù)據(jù)存儲(chǔ)到Redis中的操作
redis是一個(gè)key-value存儲(chǔ)結(jié)構(gòu)。和Memcached類似,它支持存儲(chǔ)的value類型相對(duì)更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set 有序集合)和hash(哈希類型),數(shù)據(jù)存儲(chǔ)如下圖分析
為了分別為ID存入多個(gè)鍵值對(duì),此次僅對(duì)Hash數(shù)據(jù)進(jìn)行操作,例子如下
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} #寫數(shù)據(jù)到Redis idkey = 'name'+did #hash表數(shù)據(jù)寫入命令hmget,可以一次寫入多個(gè)鍵值對(duì) r.hmget(idkey,rt) #寫入命令hset,一次只能寫入一個(gè)鍵值對(duì) 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對(duì)應(yīng)的hash中設(shè)置一個(gè)鍵值對(duì),當(dāng)name對(duì)應(yīng)的hash中不存在當(dāng)前key則創(chuàng)建(相當(dāng)于添加) ,否則做更改操作
hget(name,key) : 在name對(duì)應(yīng)的hash中獲取根據(jù)key獲取value
hmset(name,mapping) :在name對(duì)應(yīng)的hash中批量設(shè)置鍵值對(duì) ,mapping:例 {'k1':'v1','k2':'v2'}
hmget(name,keys,*args) :在name對(duì)應(yīng)的hash中獲取多個(gè)key的值 ,keys:要獲取key的集合,例 ['k1','k2'];*args:要獲取的key,如:k1,k2,k3
hgetall(name):獲取name對(duì)應(yīng)hash的所有鍵值
hlen(name):獲取name對(duì)應(yīng)的hash中鍵值的個(gè)數(shù)
hkeys(name):獲取name對(duì)應(yīng)的hash中所有的key的值
hvals(name):獲取name對(duì)應(yīng)的hash中所有的value的值
hexists(name,key):檢查name對(duì)應(yīng)的hash是否存在當(dāng)前傳入的key
hdel(name,*keys):將name對(duì)應(yīng)的hash中指定key的鍵值對(duì)刪除
補(bǔ)充知識(shí):將python數(shù)據(jù)存入redis中,鍵取字符串類型
使用redis中的字符串類型鍵來(lái)存儲(chǔ)一個(gè)python的字典。首先需要使用json模塊的dumps方法將python字典轉(zhuǎn)換為字符串,然后存入redis,從redis中取出來(lái)必須使用json.loads方法轉(zhuǎn)換為python的字典(其他python數(shù)據(jù)結(jié)構(gòu)處理方式也一樣)。
如果不使用json.loads方法轉(zhuǎn)換則會(huì)發(fā)現(xiàn)從redis中取出的數(shù)據(jù)的數(shù)據(jù)類型是bytes.
當(dāng)使用的python數(shù)據(jù)結(jié)構(gòu)是列表時(shí):
以上這篇Python 抓取數(shù)據(jù)存儲(chǔ)到Redis中的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python讀寫Redis數(shù)據(jù)庫(kù)操作示例
- Python操作Redis之設(shè)置key的過(guò)期時(shí)間實(shí)例代碼
- python操作redis的方法
- python操作redis方法總結(jié)
- Python操作redis實(shí)例小結(jié)【String、Hash、List、Set等】
- python實(shí)現(xiàn)redis三種cas事務(wù)操作
- python筆記:mysql、redis操作方法
- 基于python實(shí)現(xiàn)操作redis及消息隊(duì)列
- Python訪問(wèn)Redis的詳細(xì)操作
- Python操作Redis數(shù)據(jù)庫(kù)的超詳細(xì)教程
相關(guān)文章
Python裝飾器如何實(shí)現(xiàn)修復(fù)過(guò)程解析
這篇文章主要介紹了Python裝飾器如何實(shí)現(xiàn)修復(fù)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Python解決線性代數(shù)問(wèn)題之矩陣的初等變換方法
今天小編就為大家分享一篇Python解決線性代數(shù)問(wèn)題之矩陣的初等變換方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12python報(bào)錯(cuò)解決之python運(yùn)行bat文件的各種問(wèn)題處理
這篇文章主要介紹了python報(bào)錯(cuò)解決之python運(yùn)行bat文件的各種問(wèn)題處理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06Python3 XML 獲取雅虎天氣的實(shí)現(xiàn)方法
下面小編就為大家分享一篇Python3 XML 獲取雅虎天氣的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02Python用imghdr模塊識(shí)別圖片格式實(shí)例解析
這篇文章主要介紹了Python用imghdr模塊識(shí)別圖片格式實(shí)例解析,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Python進(jìn)行常見(jiàn)圖像形態(tài)學(xué)處理操作的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何使用Python進(jìn)行常見(jiàn)的圖像形態(tài)學(xué)處理,例如腐蝕、膨脹、禮帽、黑帽等,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03Python通過(guò)TensorFLow進(jìn)行線性模型訓(xùn)練原理與實(shí)現(xiàn)方法詳解
這篇文章主要介紹了Python通過(guò)TensorFLow進(jìn)行線性模型訓(xùn)練原理與實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了Python通過(guò)TensorFLow進(jìn)行線性模型訓(xùn)練相關(guān)概念、算法設(shè)計(jì)與訓(xùn)練操作技巧,需要的朋友可以參考下2020-01-01對(duì)Python中小整數(shù)對(duì)象池和大整數(shù)對(duì)象池的使用詳解
今天小編就為大家分享一篇對(duì)Python中小整數(shù)對(duì)象池和大整數(shù)對(duì)象池的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07把大數(shù)據(jù)數(shù)字口語(yǔ)化(python與js)兩種實(shí)現(xiàn)
當(dāng)出現(xiàn)萬(wàn)以上的整型數(shù)字時(shí),經(jīng)常要把它們口語(yǔ)化比較直觀。下面分享兩段代碼,python與js的2013-02-02