mysql数据库存歌曲

阅读: 评论:0

mysql数据库存歌曲

mysql数据库存歌曲

2017.12.24

1、有用文件有2个:

(1)spider.py#主流程从这里开始

(2)find_songname.py#功能模块,实现把song_name转换成song_id,被spider.py引入

2、实现的功能

(1)GUI界面显示数据库查询结果(歌手或者歌曲),供用户选择,支持单选和多选

(2)对指定歌名的歌曲,联网爬取歌曲信息,获得top100评论,并解析出top10关键词,分别保存至数据库相应的表(songs、comments和keywords)。支持emoji表情保存

(3)对指定人名的歌手,取出库中保存的关联歌曲评论,解析出该歌手的评论关键词并展示

(4)

3、用到的模块

(1)网页爬取相关

import requests

import json

from selenium import webdriver

from selenium.webdriver.support.ui import WebDriverWait

import os

(2)加密算法相关

from Crypto.Cipher import AES

import base64

import codecs

(3)数据库操作相关

tor

#import MySQLdb

(4)GUI相关

from tkinter import *

ssagebox as messagebox

(5)汉语分词解析

import pynlpir

3、简易使用手册:

(1)运行spider.py,选择process,支持单选和多选

0 输入歌名爬取新歌曲

1 从历史库分析歌手关键词

(1).0输入歌名爬取新歌曲:

首先出现GUI提示输入歌曲名称,输入后自动搜索相关歌曲并GUI列表展示,选择其中需感兴趣的歌曲(支持单选和多选),自动完成评论爬取和关键词解析,结果保存到数据库,并同步展示在console台。

(1).1从历史库分析歌手关键词

首先出现GUI展示数据库中所有歌手名称,共用户选择,支持单选和多选。用户做出选择后,自动搜索数据库中当前保存的该歌手演唱歌曲的评论,自动完成top10关键词解析并展示。

4、值得注意的的问题和代码

(1)find_songname.py中,构造了继承自Tk的自定类class InputApp(Tk),然后在input_songname()中,生成了InputApp的一个实例,执行mainloop即可实现歌曲名的输入 (这段代码还要细看).其余实现选择功能的的GUI都是派生自Tk,代码也是一个模板。

(2)find_songname.py中,webdriver两次用到等待,这很有必要:

WebDriverWait(browser, 10).until(lambda driver: driver.find_element_by_class_name("g-iframe"))和WebDriverWait(browser, 10).until(lambda driver: driver.find_element_by_class_name("srchsongst"))

(3)find_songname.py中,webdriver对html元素的定位,需要首先browser.switch_to.frame(frame1)定位到某个frame,下一句再去查找其中的css元素,否则找不到。

(4)spider.py中,加密相关模块是从网上copy的,待理解。

(5)善用assert,比print更直观,例如 assert len(comments) == 10

(6)如果字典的value都是数字,如何将字典元素按value大小排序?

首先需要构造lst=dic2lst(dicc),接着top_keywords = list(sorted(dic2lst(dic_keywords), key=lambda x: -x[1]))[:10],从关键词字典找出top10的关键词

(7)数据库中建表时,指定合适的字段类型、外键、唯一索引。

(8)为了成功保存emoji表情,指定database和table的CHARACTER SET 为utf8bm4编码,且连接数据库时也要指定utf8bm4编码。conn = t(user='root', password='1234', use_unicode=True,charset='utf8mb4')

(9)数据库插入数据时,根据情况决定是新增insert还是更新update。为了改insert into为replace into,同时配合增加songid+seq两个字段联合构成的unique key作为查重条件。

本文发布于:2024-01-30 17:47:50,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170660807321755.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:库存   数据   歌曲   mysql
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23