python爬取芒果TV《乘风破浪的姐姐》弹幕数据(已完成)

该博客详细介绍了如何使用Python爬虫从芒果TV抓取《乘风破浪的姐姐》前六期的弹幕数据。通过分析XHR请求,发现了JSON文件的规律,并编写了get_danmu函数进行数据爬取。最终成功获取201,633条弹幕,存储于danmu.xlsx文件中,按期统计了弹幕数量。" 80954276,7728009,岭回归与Lasso:变量选择与多重共线性解决方案,"['机器学习', '统计学习', '线性回归', '特征选择']
摘要由CSDN通过智能技术生成

爬取平台:芒果TV
爬取内容:《乘风破浪的姐姐》弹幕数据(以前6期为例)
爬取工具:Anaconda3 Spyder
爬取日期:2020年7月1日

打开节目网页,通过开发者工具Network中的XHR我们可以发现,随着节目的播放,每隔一分钟XHR中会新增一个json文件。
在这里插入图片描述
查看json文件,可以发现每个json文件都存储着前一分钟内所有的弹幕数据,主要包括用户名、弹幕内容、点赞数等,因此,节目时长(min)=json文件数。

在本次实验中,主要爬取用户id、用户名uname、弹幕内容content、发布时间time、弹幕点赞数v2_up_count。
在这里插入图片描述
在Headers中可以获取每个json文件的url(图是7.14补的,所以和代码里的url有差异,问题不大),发现同一期节目json文件的url日期后两个数字是一样的,可以通过这两个数字定位到节目的某一集。
在这里插入图片描述在这里插入图片描述
找到url的规律后开始写代码。
首先导入requests库、json库、pandas库。

import requests
import json
import pandas as pd

构建get_danmu(num1,num2,page)函数,其中num1、num2为url日期后的两个数字,page是json文件后缀前的数字(即节目分钟数)。

代码中用到的函数:
format():格式化输出,即将format()后面的内容,填入大括号中(可以按位置,可以按变量)
requests.get():向指定的资源发出请求
res.text:获取文本信息(否则只返回HTTP状态码)
json.loads():将json格式数据(字符串)转换为字典

#提取某一期的弹幕
def get_danmu(num1,num2,page):
    try:
        url='https://bullet-ws.hitv.com/bullet/2020/07/1/{}/{}/{}.json'
        danmuurl = url.format(num1,num2,page)
    
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值