import hashlib
import redis
from scrapy.utils.project import get_project_settings
from sqlalchemy import create_engine, text
# 讀取mysql數據庫 獲取 v_id 208457 循環
class demo:
def __init__(self):
self.redis_vid_hash = 'c17:vid_hash_new'
self.redis_conn = redis.Redis(host='localhost', port=6379, db=8)
settings = get_project_settings()
self.host = settings['DB_HOST']
self.port = settings['DB_PORT']
self.user = settings['DB_USER']
self.password = settings['DB_PASSWORD']
self.name = settings['DB_NAME']
# self.charset = settings['DB_CHARSET']
self.connect()
def connect(self):
# 地址為localhost,數據庫名稱為db
url = f"mysql+pymysql://{self.user}:{self.password}@{self.host}:{self.port}/{self.name}"
engine = create_engine(url=url, echo=False, pool_recycle=1)
# 與數據庫鏈接
self.connection = engine.connect()
def get_msyqldata(self):
conn = self.connection
sql = "SELECT v_id FROM videos_17c"
lists = conn.execute(
text(sql))
for i in lists:
v_id_hash = hashlib.sha256(str(i[0]).encode('utf-8')).hexdigest()
self.redis_conn.sadd(self.redis_vid_hash, v_id_hash)
print("寫入成功",i[0], v_id_hash)
self.connection.close()
if __name__ == '__main__':
# run()
l = demo()
l.get_msyqldata()