用Python分析《令人心动的offer2》的13万条弹幕,网友们都在吐槽什么?

本文使用Python爬取并分析了《令人心动的offer2》的13万多条弹幕,探讨了各期弹幕数量、活跃用户、会员等级分布、弹幕内容主题以及对8位实习生的评价,结果显示丁辉最受关注,节目情感氛围积极。
摘要由CSDN通过智能技术生成

前言

大家好,我是J哥。

综艺,是我们劳累了一天的放松方式,也是我们饭后的谈资。看着自己喜欢的综艺,时光足够美。而《令人心动的offer 》,就是一个不错的综艺选择。有人说它让自己更自卑了,而我觉得挺有意思。

《令人心动的offer 》目前为止已经播出了两季,第一季在豆瓣为8.3分,共有5万余人评分,第二季目前评分低于第一季,评分仅7.1分。
令人心动的offer第一季
令人心动的offer第二季
本文通过爬取《令人心动的offer》第二季13万+弹幕,进行可视化分析和情感分析,完整代码后台回复「offer」即可免费获取。

数据获取

《令人心动的offer》第二季在腾讯视频独家播出,目前已播出四期(含面试篇),本文采取分集爬取。弹幕数据爬虫在往期原创文章中已详细讲解,本文不做赘述,感兴趣的朋友可点击:视频弹幕爬虫,看这一篇就够了。以下以爬取面试篇弹幕为例,并给出完整代码:

#-*- coding = uft-8 -*-
#@Time : 2020/11/30 21:35 
#@Author : 公众号 菜J学Python
#@File : tengxun_danmu.py

import requests
import json
import time
import pandas as pd

target_id = "6130942571%26" #面试篇的target_id
vid = "%3Dt0034o74jpr" #面试篇的vid
df = pd.DataFrame()
for page in range(15, 3214, 30):  #视频时长共3214秒
    headers = {
   'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
    url = 'https://mfm.video.qq.com/danmu?otype=json&timestamp={0}&target_id={1}vid{2}&count=80'.format(page,target_id,vid)
    print("正在提取第" + str(page) + "页")
    html = requests.get(url,headers = headers)
    bs = json.loads(html.text,strict = False)  #strict参数解决部分内容json格式解析报错
    time.sleep(1)
    #遍历获取目标字段
    for i in bs['comments']:
        content = i['content']  #弹幕
        upcount = i['upcount']  #点赞数
        user_degree =i['uservip_degree'] #会员等级
        timepoint = i['timepoint']  #发布时间
        comment_id = i['commentid']  #弹幕id
        cache = pd.DataFrame({
   '弹幕':[content],'会员等级':[user_degree],'发布时间':[timepoint],'弹幕点赞':[upcount],'弹幕id':[comment_id]})
        df = pd.concat([df,cache])
df.to_csv('面试篇.csv',encoding = 'utf-8')

分别爬取完成后,将四个弹幕csv文件放入一个文件夹中。
4集弹幕数据
打开面试篇csv文件,预览如下:
面试篇弹幕数据预览

数据清洗

合并弹幕数据

首先,将四个弹幕csv文件进行数据合并,采用concat方法。

import pandas as pd
import numpy as np
df1 = pd.read_csv("/菜J学Python/弹幕/腾讯/令人心动的offer/面试篇.csv")
df1["期数"] = "面试篇"
df2 = pd.read_csv("/菜J学Python/弹幕/腾讯/令人心动的offer/第1期.csv")
df2["期数"] = "第1期"
df3 = pd.read_csv("/菜J学Python/弹幕/腾讯/令人心动的offer/第2期.csv")
df3["期数"] = "第2期"
df4 = pd.read_csv("/菜J学Python/弹幕/腾讯/令人心动的offer/第3期.csv")
df4["期数"] = "第3期"
df = pd.concat([df1,df2,df3,df4])

预览下合并后的数据:

df.sample(10)

合并后数据

查看数据信息

df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 133627 entries, 0 to 34923
Data columns (total 8 columns):
 #   Column      Non-Null Count   Dtype 
---  ------      --
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值