教你使用Python抓取QQ音乐数据(四)

本文将前三个关于Python抓取QQ音乐数据的项目整合在一起,通过菜单实现不同功能:获取歌手歌曲信息、歌词、评论和生成词云图。讲解了所需库、项目实现步骤,包括封装各个功能的函数,并讨论了打包成.exe时遇到的问题和解决方案。
摘要由CSDN通过智能技术生成

【一、项目目标】

通过《教你使用Python抓取QQ音乐数据(一)》我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名、专辑名、播放链接。

通过《教你使用Python抓取QQ音乐数据(二)》我们实现了获取 QQ 音乐指定歌曲的歌词和指定歌曲首页热评。

通过《教你使用Python抓取QQ音乐数据(三)》我们实现了获取更多评论并生成词云图。

此次我们将将三个项目封装在一起,通过菜单控制爬取不同数据。

【二、需要的库】

主要涉及的库有:requests、openpyxl、html、json、wordcloud、jieba

如需更换词云图背景图片还需要numpy库和PIL库(pipinstall pillow)

如需生成.exe需要pyinstaller -F

【三、项目实现】

1.首先确定菜单,要实现哪些功能:

①获取指定歌手的歌曲信息(歌名、专辑、链接)

②获取指定歌曲歌词

③获取指定歌曲评论

④生成词云图

⑤退出系统

代码如下:

class QQ():
    def menu(self):
        print('欢迎使用QQ音乐爬虫系统,以下是功能菜单,请选择。\n')
        while True:
            try:
                print('功能菜单\n1.获取指定歌手的歌曲信息\n2.获取指定歌曲歌词\n3.获取指定歌曲评论\n4.生成词云图\n5.退出系统\n')
                choice = int(input('请输入数字选择对应的功能:'))
                if choice == 1:
                    self.get_info()
                elif choice == 2:
                    self.get_id()
                    self.get_lyric()
                elif choice == 3:
                    self.get_id()
                    self.get_comment()
                elif choice == 4:
                    self.wordcloud()
                elif choice == 5:
                    print('感谢使用!')
                    break
                else:
                    print('输入错误,请重新输入。\n')
            except:
                print('输入错误,请重新输入。\n')  

第一行创建类,第二行定义菜单函数,这里用了类的实例化,里面所有函数的第一个参数都是self,我认为实例化更方便传参数;

whiletrue使菜单无限循环;

Try…except…使循环不会因报错而退出;

其他代码为设置输入不同数字对应打开不同函数。

2.封装项目(一)为get_info()

代码如下:

def get_info(self):
        wb=openpyxl.Workbook()  
        #创建工作薄
        sheet=wb.active 
        #获取工作薄的活动表
        sheet.title='song' 
        #工作表重命名

        sheet['A1'] ='歌曲名'     #加表头,给A1单元格赋值
        sheet['B1'] ='所属专辑'   #加表头,给B1单元格赋值
        sheet['C1'] ='播放链接'   #加表头,给C1单元格赋值
        url = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp'
        name = input('请输入要查询的歌手姓名:')
        page = int(input('请输入需要查询的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值