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='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 데이터 구조 가 목록 일 때:

이상 의 Python 캡 처 데 이 터 를 Redis 에 저장 하 는 작업 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기