原神2023年五星男性角色PV弹幕分析——艾尔海森

艾尔海森角色PV弹幕爬虫

打开埃尔海森角色PV的视频,F12打开开发者工具,选择“网络”,并在网页上选择弹幕日期,得到的界面如下所示
在这里插入图片描述

搜索栏中输入history进行查找,选择seg.so 可以得到网页URL等信息。

弹幕爬虫

弹幕爬虫部分代码主要定义了两个function,应用到的模块如下:

import re
import time
import requests
import pandas as pd
from tqdm import trange

同一个视频在不同的日期下url只有“date=”部分发生变化。因此我们用第一个函数get_bilibili_url用来获得不同日期下的网页url

def get_bilibili_url(start, end):
    url_list = []
    date_list = [i for i in pd.date_range(start, end).strftime('%Y-%m-%d')]
    for date in date_list:
        url = f"https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=968914022&date={date}"
        url_list.append(url)
    return url_list

第二个函数get_bilibili_danmu用来获得相应的弹幕信息并保存为csv文件

def get_bilibili_danmu(url_list):
    headers = {
        'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
        'cookie': "自己的cookie",
        'Origin': "https://www.bilibili.com",
        'Referer': "https://www.bilibili.com/video/BV1MM411c7m6/",
        'sec-fetch-dest': "empty",
        'sec-fetch-mode': "cors",
        'sec-fetch-site': "same-site"
    }

    for i in trange(len(url_list)):
        url = url_list[i]
        response = requests.get(url, headers=headers)
        html_data = response.text
        result = re.findall(".*?([\u4E00-\u9FA5]+).*?", html_data)
        for j in result:
            with open('bilibili_elheisen_danmu.csv', mode='a', encoding='utf-8') as f:
                f.write(j)
                f.write('\n')
                print(j)
        time.sleep(3)
        f.close()

主函数写为

if __name__ == "__main__":
    start = '1/12/2023'
    end = '1/12/2023'
    url_list = get_bilibili_url(start, end)
    get_bilibili_danmu(url_list)
    print("艾尔海森弹幕爬取完成")

得到的csv文件如下所示
在这里插入图片描述

参考连接

https://blog.csdn.net/fei347795790/article/details/113118236
https://mp.weixin.qq.com/s/SZ1fVMcjAxJbVVnRwX_YXw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值