【Python】163MusicSA-统计你的听歌排行中出现最多的歌词

163 Music Self Analysis

163 Music Self Analysis-通过python爬取听歌排行中的歌词信息,然后对歌词进行处理,最后生成词云或者其他可视化图形,完成分析。
参考代码地址:
NacedWang/163MusicSpider 基础代码部分
Samaritan·J 实现爬取个人排行界面

由于原程序的数据库储存在Mysql中,但是本人之前所学的数据库为Sql Server,所以需要重新学习相关的知识。
多线程运行,可能会触发反爬虫引发其他错误,放弃。 已实现,真香
为了实现无界面打开网页,寻找其他方法代替selenium 直接设置Option.headless=True实现无界面打开

进度:

  • 2020/10/13

    • MySql安装
    • 成功爬取个人排行信息到数据库
    • 找到无法click选择所有时间的问题
  • 2020/10/14

    • 通过歌曲id爬取歌词到数据库
    • 处理歌词信息,除去无用信息
    • 生成词云
  • 2020/10/15

    • 正则表达式优化处理歌词代码,比原来的处理更加简单
    • 整合所有模块
  • 2020/10/16

    • 优化sql模块,去除不需要的方法
    • 调整MySql数据库,将之前测试用的表(如music2)全部改成正式表名(如music)
    • 调整图片输出位置,统一输出到wordcloud文件夹
  • 2020/10/17

    • 首次使用Pycharm,配置好conda环境
    • 优化数据库,添加以用户id为主键的列,全表保存。不再需要每次运行前清库,相同的歌曲不需要重复储存歌词
    • 根据数据库的调整,重新优化代码。只需在main中输入id,其他文件自动运行并输出
    • 处理歌词方法clearInf的if判断改成try、except
    • 使用Pycharm进行commit、push操作
  • 2020/10/26

    • 利用MySQL存储过程,处理数据
    • 统计相似度
  • 2020/10/29

    • 实现多线程爬取歌词
  • 2020/10/30

    • 实现sqlite,分离成PT版
    • 实现pyqt,主界面与爬取线程分开,防止卡死

163MusicSA_PT

  • 2020/10/31

    • pyqt编写界面
    • 尝试打包成exe
  • 2020/11/1

    • Nuitka打包失败
    • jieba,Wordcloud本地资源txt读取问题
    • pyinstaller打包成功 利用spec自定义选项
    • 多线程打包问题,webdriver自动弹出问题
  • 2020/11/5

    • Nuitka打包成功,但是爬取功能失效
  • 2020/11/15

    • 界面细节优化,逻辑优化
  • 2021/1/21

    • 添加歌单匹配功能,未添加到界面中
  • 2021/3/30

    • 重构匹配代码

待完善:

    • 可视化相似的歌曲(pyecharts)
    • 将歌单匹配功能写入GUI中
    • 爬取评论