当前位置: 首页 > 后端技术 > Python

一小时销量破百万,Python告诉你周杰伦的《Mojito》有多火!

时间:2023-03-25 20:31:21 Python

【简介】:今天我们来说说周杰伦的新歌《Mojito》,Python技术部分请看第三篇,Showmedata,speakwithdata6月12日0:00,周杰伦最新单曲《Mojito》正式上线。对于周杰伦的粉丝来说,这一天就像过年一样。因为距离周杰伦上次发歌已经半年了;而他的上一张专辑《周杰伦的床边故事》已经是4年前的事了。歌曲《Mojito》以一款古巴传统鸡尾酒命名,前奏充满了浓郁的古巴风情和拉丁韵律,整首歌写出了遇见爱情时迷人的浪漫情调。尤其是令人赞叹的rap部分,不仅让人感叹青春又回来了!《Mojito》一经推出便火爆全网。超300万人次提前预约,1小时销量突破100万,直接导致QQ音乐崩盘。今天我们就用数据来全面解读周杰伦的新歌《Mojito》。一、豆瓣数据首先,我们对《Mojito》的豆瓣音乐数据进行了分析整理。目前,豆瓣上有超过23000人对这首歌进行了评论,评分高达6.9。数据来源:豆瓣音乐短评https://music.douban.com/subj...数据量:498虽然与周杰伦早期的乐谱相比有一定的差距,但与前两部发布的《我是如此相信》《说好不哭》相比年豆瓣评分6.3和5.9,这个mojito还是不错的。详细查看评分数据可以发现,最多的人给了3星,占比39.02%。其次是4星,占21.84%。16.49%给了5颗星。我们进一步将1-2分分类为负面评级,将4-5分分类为正面评级。分别对比负面和正面词云,我们可以看到,在负面评价中,提及最多的是“失望”、“丑陋”、“安排”。在正面评价中,多数人表示“很好听”、“有夏天的感觉”、“喜欢”。有趣的是,正面和负面的评论都提到了异域风情的《Mojito》,很让人联想到周杰伦的歌曲《迷迭香》。2、微博数据接下来我们分析了周杰伦中文网发布的mojitomv在微博上的评论数据。微博:《Mojito》周杰伦中文网JayCn发布的MVhttps://weibo.com/1165631310/..._comment_id=0&type=comment数据集大小(去重后):评论数据:9976粉丝数据:9107分析了它结果发现,在评论用户的性别方面,女生占绝大多数,占比达78.82%。在用户年龄段上,也是妥妥的90后世界,占比高达74.91%。微博评论里大家都在说什么?可以看出,大部分人都表达了“很好听”、“喜欢”、“很有夏天感”的感受。让人“单循环”,尤其是“顶”。同时,经典的周氏说唱也是整首歌的灵魂,听着就很有味道!3、教你用Python爬取QQ音乐评论数据最后我们看到了qq音乐的数据:QQ音乐评论信息。https://y.qq.com/n/yqq/album/...数据量:20245先看结论。首先,我们可以在实时评论趋势图上看到。12日0时,歌曲发布时,评论人数最高,然后慢慢回落。评论中也有人感叹“好听”“青春回来了”。粉丝纷纷下单支持,毕竟上线一个小时就突破了100万张,导致QQ音乐软件一度崩溃,周杰伦的影响力不容小觑。下面我们看看具体步骤。我们使用Python获取了QQ音乐评论、豆瓣短评论和微博相关的评论数据,并进行了数据分析。这里展示QQ音乐评论分析板块。按照业务分析流程:数据采集数据处理数据可视化01数据采集首先打开QQ音乐,搜索Mojito。转到评论区后,使用谷歌浏览器的检查功能,切换到网络部分,点击翻页抓取网络包。很容易发现评论区的内容是用json封装的,如下图:切换到Headers,找到请求的URL地址,我们对请求地址进行简化测试,得到评论的URL地址数据请求:https://c.y.qq.com/base/fcgi-..._global_comment_h5.fcg?biztype=2&topid=12924001&cmd=8pagenum=0&pagesize=25参数pagenum代表页数,可以获取所有数据通过遍历。代码如下:importpackageimportpandasaspdimporttimeimportrequestsimportjsonfromfake_useragentimportUserAgentdefget_qq_comment(page_num):#storedatadf_all=pd.DataFrame()foriinrange(page_num):#Printprogressprint('Iamgetting页面信息{}'.format(i))#获取URLurl='https://c.y.qq.com/base/fcgi-..._global_comment_h5.fcg?biztype=2&topid=12924001&cmd=8pagenum={}&pagesize=25'.format(i)#添加headersheaders={'user-agent':UserAgent().random}#发起请求try:exceptheaderas,getr=requests(s,gete)continue#解析网页json_data=json.loads(r.text)#获取数据comment_list=json_data['comment']['commentlist']#昵称nick_name=[i.get('nick')foriincomment_list]#评论内容i.get='rootcommentcontent')foriincomment_list]#评论时间comment_time=[i.get('time')foriincomment_list]#赞数#praise_num=[i.get('praisenum')foriincomment_list]存储数据df=pd.dataframe({'nick_name':nick_name,'content':content,'comment_time':comment_time':comment_time,'praver_num':prail_num})#追加df_all=df_all=df_all.append(df,digore_index=true)sleep(1)returndf_allrunningfunctiondf=get_qq_comment(page_num=912)通过以上程序,截至6月13日共获取到22217条评论信息,数据集如下:df.head()02datareadin和数据处理以读入数据集并清理获取的数据集导入所需包importjiebaimportstylecloudfrompyecharts.chartsimportPie,Bar,Map,Line,WordCloud,Pagefrompyechartsimportoptionsasoptsfrompyecharts.globalsimportSymbolType,WarningTypeWarningType.ShowWarning=Falsereaddatadf=celd.read_ex./data/QQ音乐评论数据6.13.xlsx')查看重复值和空值print(df.duplicated().sum())print(df.isnull().sum())转换函数deftransform_time(time_second):time_array=time.localtime(time_second)otherStyleTime=time.strftime('%Y-%m-%d%H:%M:%S',time_array)returnotherStyleTime时间数据处理df['comment_time']=df['comment_time'].apply(lambdax:transform_time(x))内容初步处理模式=re.compile(r'\[em\](.*?)\[/em\]')df['content']=df.content.str.replace(pattern,'')df.head()03数据可视化分析Mojito评论时间趋势图日期数字comment_num=df.comment_time.str.split(':').str[0]。value_counts().sort_index()comment_num[:5]2020-06-1200126732020-06-120111852020-06-12023642020-06-12031462020-06-1204时间,姓名:comtype:int64生成数据x_line1=[i.replace('2020-','')foriincomment_num.index.to_list()]y_line1=comment_num.values.tolist()绘制面积图line1=Line(init_opts=opts.InitOpts(width='1350px',height='750px'))line1.add_xaxis(x_line1)line1.add_yaxis('',y_line1,markpoint_opts=opts.MarkPointOpts(data=[typePointmmax,Mark_teopts(name='maximum'),opts.MarkPointItem(type_='min',name='minimum')]))line1.set_global_opts(title_opts=opts.TitleOpts('Mojito评论数趋势图'),axxopts=optts。=3))line1.render()QQ音乐评论词云图defget_cut_words(content_series):#读入停用词列表stop_words=[]withopen(r"stop_words.txt",'r',encoding='utf-8')asf:lines=f.readlines()forlineinlines:stop_words.append(line.strip())#添加关键词my_words=['周杰伦','一首歌','好好听','方文山','30s']foriinmy_words:jieba.add_word(i)自定义停用词my_stop_words=['歌有','true','this','Onesong','One点','随便','一段','一句话','歌','啊啊','哈哈哈','转发','微博','那段','他会']stop_words.extend(my_stop_words)#分词word_num=jieba.lcut(content_series.str.cat(sep=''),cut_all=False)#条件过滤器word_num_selected=[iforiinword_numifinotinstop_wordsandlen(i)>=2]returnword_num_selectedtext1=get_cut_words(content_series=df.content)text1[:5]['致敬'、'久事'、'生命'、'旋转'、'木马']绘制词云图stylecloud.gen_stylecloud(text='''.join(text1),max_words=1000,cololocations=false,font_path=r'c:\Windows\FONTS\msyh.ttc',icon_name='FASFA-MUSIC',SIZE=624,Output_name='./词云图词云图.png')出品方:MIKAdata数据:振大晚舞台:泽龙