chrome网页视频抓取(Python实现抓取B站视频弹幕评论,废话不多说 )

优采云 发布时间: 2021-11-09 01:21

  chrome网页视频抓取(Python实现抓取B站视频弹幕评论,废话不多说

)

  前言

  用Python捕捉B站视频弹幕评论,废话不多说。

  让我们愉快的开始吧~

  开发工具

  Python版本:3.6.4

  相关模块:

  请求模块;

  重新模块;

  熊猫模块;

  以及一些 Python 自带的模块。

  环境设置

  安装Python并将其添加到环境变量中,pip安装所需的相关模块。

  思维分析

  本文以爬取视频《“这是我见过最拽的中国奥运冠军”》为例,讲解如何爬取B站视频的弹幕和评论!

  目标地址

  https://www.bilibili.com/video/BV1wq4y1Q7dp

  抢弹幕

  网络分析

  B站视频的弹幕不像TXSP。播放视频会触发弹幕数据包。他需要点击网页右侧弹幕列表行展开,然后点击查看历史弹幕,获取视频弹幕开始日期到结束日期链接:

  

  在链接的末尾,使用oid和开始日期形成弹幕日期URL:

  https://api.bilibili.com/x/v2/dm/history/index?type=1&oid=384801460&month=2021-08

  在此基础上,点击任一生效日期,即可获得该日期的弹幕数据包。里面的内容目前无法读取。之所以确定是弹幕数据包,是因为日期是点击他刚加载出来的,链接和上一个链接有关系:

  

  获取到的网址:

  https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=384801460&date=2021-08-08

  URL中的oid是视频弹幕链接的id值;data参数是刚才的日期,要获取视频的所有弹幕内容,只需要修改data参数即可。data参数可以从上面弹幕日期url中获取,也可以自己构造;网页数据格式为json格式

  代码

  import requests\

import pandas as pd\

import re\

\

def data_resposen(url):\

    headers = {\

        "cookie": "你的cookie",\

        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36"\

    }\

    resposen = requests.get(url, headers=headers)\

    return resposen\

\

def main(oid, month):\

    df = pd.DataFrame()\

    url = f'https://api.bilibili.com/x/v2/dm/history/index?type=1&oid={oid}&month={month}'\

    list_data = data_resposen(url).json()['data']  # 拿到所有日期\

    print(list_data)\

    for data in list_data:\

        urls = f'https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid={oid}&date={data}'\

        text = re.findall(".*?([\u4E00-\u9FA5]+).*?", data_resposen(urls).text)\

        for e in text:\

            print(e)\

            data = pd.DataFrame({'弹幕': [e]})\

            df = pd.concat([df, data])\

    df.to_csv('弹幕.csv', encoding='utf-8', index=False, mode='a+')\

\

if __name__ == '__main__':\

    oid = '384801460'  # 视频弹幕链接的id值\

    month = '2021-08'  # 开始日期\

    main(oid, month)

  显示结果

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线