Python 抓取數(shù)據(jù)存儲到Redis中的操作
redis是一個key-value存儲結(jié)構(gòu)。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set 有序集合)和hash(哈希類型),數(shù)據(jù)存儲如下圖分析

為了分別為ID存入多個鍵值對,此次僅對Hash數(shù)據(jù)進行操作,例子如下
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,可以一次寫入多個鍵值對
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對應(yīng)的hash中設(shè)置一個鍵值對,當(dāng)name對應(yīng)的hash中不存在當(dāng)前key則創(chuàng)建(相當(dāng)于添加) ,否則做更改操作
hget(name,key) : 在name對應(yīng)的hash中獲取根據(jù)key獲取value
hmset(name,mapping) :在name對應(yīng)的hash中批量設(shè)置鍵值對 ,mapping:例 {'k1':'v1','k2':'v2'}
hmget(name,keys,*args) :在name對應(yīng)的hash中獲取多個key的值 ,keys:要獲取key的集合,例 ['k1','k2'];*args:要獲取的key,如:k1,k2,k3
hgetall(name):獲取name對應(yīng)hash的所有鍵值
hlen(name):獲取name對應(yīng)的hash中鍵值的個數(shù)
hkeys(name):獲取name對應(yīng)的hash中所有的key的值
hvals(name):獲取name對應(yīng)的hash中所有的value的值
hexists(name,key):檢查name對應(yīng)的hash是否存在當(dāng)前傳入的key
hdel(name,*keys):將name對應(yīng)的hash中指定key的鍵值對刪除
補充知識:將python數(shù)據(jù)存入redis中,鍵取字符串類型
使用redis中的字符串類型鍵來存儲一個python的字典。首先需要使用json模塊的dumps方法將python字典轉(zhuǎn)換為字符串,然后存入redis,從redis中取出來必須使用json.loads方法轉(zhuǎn)換為python的字典(其他python數(shù)據(jù)結(jié)構(gòu)處理方式也一樣)。
如果不使用json.loads方法轉(zhuǎn)換則會發(fā)現(xiàn)從redis中取出的數(shù)據(jù)的數(shù)據(jù)類型是bytes.

當(dāng)使用的python數(shù)據(jù)結(jié)構(gòu)是列表時:

以上這篇Python 抓取數(shù)據(jù)存儲到Redis中的操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
分布式訓(xùn)練training-operator和pytorch-distributed?RANK變量不統(tǒng)一解決
這篇文章主要介紹了分布式訓(xùn)練training-operator和pytorch-distributed?RANK變量不統(tǒng)一問題的解決方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04
python數(shù)據(jù)挖掘需要學(xué)的內(nèi)容
在本篇文章中我們給大家整理了關(guān)于python數(shù)據(jù)挖掘需要學(xué)什么的知識點指南,有興趣的朋友們跟著參考下。2019-06-06
Python使用imagehash庫生成ahash算法的示例代碼
aHash、pHash、dHash是常用的圖像相似度識別算法,本文將利用Python中的imagehash庫生成這一算法,從而實現(xiàn)計算圖片相似度,感興趣的可以了解一下2022-11-11
三分鐘教會你用Python+OpenCV批量裁剪xml格式標注的圖片
最近學(xué)習(xí)網(wǎng)絡(luò)在線課程的過程中,為了方便課后復(fù)習(xí),使用手機截取了大量的圖片,下面這篇文章主要給大家介紹了如何通過三分鐘教會你用Python+OpenCV批量裁剪xml格式標注圖片的相關(guān)資料,需要的朋友可以參考下2022-01-01
spark?dataframe全局排序id與分組后保留最大值行
這篇文章主要為大家介紹了spark?dataframe全局排序id與分組后保留最大值行實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02
Python實現(xiàn)windows下模擬按鍵和鼠標點擊的方法
這篇文章主要介紹了Python實現(xiàn)windows下模擬按鍵和鼠標點擊的方法,涉及Python模擬實現(xiàn)鼠標及鍵盤事件的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03
基于python實現(xiàn)數(shù)組格式參數(shù)加密計算
這篇文章主要介紹了基于python實現(xiàn)數(shù)組格式參數(shù)加密計算,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04

