新剧《琉璃》,看了几集很上头,但感觉弹幕比剧情好看

python学习网 2020-08-13 15:21:06

前言

最近追了两部剧,一个是《如此可爱的我们》,青梅竹马类型青春剧,一共16集,两次更新就完结了,全程就甜甜甜。另外一个是刚看的《琉璃》,看了两集,内容大概是上辈子的仇人,这辈子下凡历劫相爱了???(流氓解读法)

 

不百度不知道,这剧居然要59集,从这刻开始我打算弃剧了,太长了。小说改编,新人出演吧(?)

 

目前非会员可以看到第七集,因为我不是高贵的芒果会员,所以只看这七集的弹幕内容。这次搞的内容多一点,看起来我不是那么敷衍。

 

PS:如有需要Python学习资料的小伙伴可以加下方的群去找免费管理员领取

 

可以免费领取源码、项目实战视频、PDF文件等

 

开始动手

1.寻找带弹幕数据的json文件 点到播放页面-【查看源代码】-【Network】-【XHR】-【x.json】

2.打开url(找不到"x.json"多翻几次)

 

火狐浏览器打开的json文件格式看起来结构比较清晰,以下是谷歌浏览器打开的:

 

3.找规律

https://bullet-ali.hitv.com/bullet/2020/08/11/124238/9552358/1.json第一集
https://bullet-ali.hitv.com/bullet/2020/08/11/124021/9552380/2.json第二集
https://bullet-ws.hitv.com/bullet/2020/08/11/124249/9552439/3.json第六集

看不同剧集url,只有后部分数字不一样。第六集的前部分换成前二集的所得内容也完全相同的。x.json中的数字数是分钟数。如

 

哈哈哈哈哈,写着写着改变主意了。就看看第一集、第二集、第六集的弹幕吧,不然还要一集一集的等广告。

我们获取:

id、uname、弹幕内容content、发布时间time、弹幕点赞数v2_up_count

4.程序

 

import requests
import json
import pandas as pd


# 提取某一集的弹幕
def get_danmu(num1, num2, page):
    try:
        url = 'https://bullet-ali.hitv.com/bullet/2020/08/11/{}/{}/{}.json'
        danmuurl = url.format(num1, num2, page)
        res = requests.get(danmuurl)
        res.encoding = 'utf-8'
        jd = json.loads(res.text)
    except:
        print("无法连接")

    details = []
    for i in range(len(jd['data']['items'])):  # 弹幕数据在json文件'data'的'items'中
        result = {}
        result['stype'] = num2  # 通过stype可识别期数
        result['id'] = jd['data']['items'][i]['id']  # 获取id

        try:  # 尝试获取uname
            result['uname'] = jd['data']['items'][i]['uname']
        except:
            result['uname'] = ''

        result['content'] = jd['data']['items'][i]['content']  # 获取弹幕内容
        result['time'] = jd['data']['items'][i]['time']  # 获取弹幕发布时间

        try:  # 尝试获取弹幕点赞数
            result['v2_up_count'] = jd['data']['items'][i]['v2_up_count']
        except:
            result['v2_up_count'] = ''
        details.append(result)

    return details


# 输入关键信息
def count_danmu():
    danmu_total = []
    num1 = input('第一个数字')
    num2 = input('第二个数字')
    page = int(input('输入总时长'))
    for i in range(page):
        danmu_total.extend(get_danmu(num1, num2, i))

    return danmu_total


def main():
    danmu_end = []

    # 爬前7集,设置循环7次
    for j in range(3):
        danmu_end.extend(count_danmu())
    df = pd.DataFrame(danmu_end)
    df.to_excel('liuli.xlsx')


if __name__ == '__main__':
    main()

 

5.结果

这几集的弹幕总共有32574条。

 

  • 弹幕中顶着哪个角色发的弹幕最多

 

大家都贪图男色吧!

  • 高赞弹幕说什么(点赞200以上视为高赞)前面两集男主说话是结巴的,宫主呢好像是类似掌门一样的称号。

 

高赞基本都是围绕剧情搞笑的部分。

  • 整体弹幕

 

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者:努力学习的渣渣哦

阅读(2921) 评论(0)