爬取平台:芒果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)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'] #获取idtry: #尝试获取unameresult['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

设置输入关键信息的代码(也可以自己新建一个list写循环)

#输入关键信息
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=[]#爬前六集,设置循环6次for j in range(6):danmu_end.extend(count_danmu())df=pd.DataFrame(danmu_end)df.to_excel('test\data\danmu.xlsx')if __name__ == '__main__':main()

运行后即可获得danmu.xlsx文件。
截止至7月1日17:00,共爬取弹幕201,633条,其中:
第一期(上)36,043条,第一期(下)48,022条;
第二期35,822条,第二期(加更版)12,299条;
第三期57,479条,第三期(加更版)11,968条。

本次实验参考https://blog.csdn.net/bo_gu/article/details/106947576,并在此基础上进行了更详细的解说,感谢这位博主。

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

  1. Python爬取《隐秘的角落》弹幕数据,实现简单可视化(附源码)

    工具使用 开发环境: win10.python3.6 开发工具: pycharm 相关模块 : requests,stylecloud 思路分析 1.爬虫获取数据 爱奇艺的弹幕数据是以 .z 形式的压 ...

  2. Python爬取不羞涩网小姐姐图片——BeautifulSoup应用

    引言 今年提倡原地过年,相信很多朋友都没有回家过年,像我就被迫留在深圳过年了,无聊之余只能去看看电影爬爬山.今天给大家带来一个打发无聊时光的案例,用Python爬取不羞涩网小姐姐图片,并保存到本地,老 ...

  3. 表哥用Python爬取数千条淘宝商品数据后,发现淘宝这些潜规则!

    本文记录了笔者用 Python 爬取淘宝某商品的全过程,并对商品数据进行了挖掘与分析,最终得出结论. 项目内容 本案例选择商品类目:沙发. 数量:共 100 页  4400 个商品. 筛选条件:天猫. ...

  4. python爬百度翻译-Python爬取百度翻译(利用json提取数据)

    本篇文章给大家带来的内容是关于Python爬取百度翻译(利用json提取数据),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 工具:Python 3.6.5.PyCharm开发工具. ...

  5. 4ye含泪用python爬取了自己的公众号粉丝数据

    4ye含泪用python爬取了自己的公众号粉丝数据 小伙伴们好呀,最近本来是在捣鼓Gateway的知识点的,结果被一件事情搞得心不在焉 哈哈哈哈,结果不得不先鸽下~ 搞完这件事情再继续哦!! ε=ε= ...

  6. 利用Python爬取《囧妈》豆瓣短评数据,并进行snownlp情感分析

    利用Python爬取<囧妈>豆瓣短评数据,并进行snownlp情感分析 一.电影评论爬取 今年的贺岁片<囧妈>上映前后,在豆瓣评论上就有不少网友发表了自己的观点,到底是好评的声 ...

  7. Python爬取影评并进行情感分析和数据可视化

    Python爬取影评并进行情感分析和数据可视化 文章目录 Python爬取影评并进行情感分析和数据可视化 一.引言 二.使用requests+BeautifulSoup进行影评的爬取 1.分析界面元素 ...

  8. 刚刚用python爬取一千个微信朋友圈数据,他们的秘密原来这么多。

    当下我们饮食起居基本上依靠微信,但微信不单单是1个即时通信软件,更像是仿真模拟的日常生活世界.你所处的微信朋友圈是咋样,慢慢地你的思想也会变的咋样.近几日在学习 itchat,并且写了1个网络爬虫,扒 ...

  9. 三分钟教会你用Python爬取到喜欢的小姐姐图片

    使用Python爬取小姐姐图片 首先上网站链接 唯vb.net教程 美女生 爬取图片主要分为一下几步: 1.打开一个你喜欢c#教程的小姐姐的网站 E.g xiaojiejie web 2.下载并安装p ...

最新文章

  1. [转]将C#程序嵌入资源中(C# 调用嵌入资源的EXE文件方法)
  2. mysqldump重叠备份带来的锁表问题
  3. 概述 互联网时代的商业挑战
  4. nopCommerce的源代码结构和架构
  5. 谷歌联合学习的论文_Google的未来联合学习
  6. GridView - Batch Editing - How to cancel editing or disable the editor conditionally
  7. 数据清洗-拉格朗日插值
  8. Hadoop:启动与停止命令
  9. Python数据挖掘笔记 七 .PCA降维操作及subplot子图绘制
  10. 字节数与字符数mysql_mysql 数值与字符类型 长度梳理
  11. 怎么修改win11睡眠时间
  12. CTFMON。exe
  13. html img标签alt属性吗,img标签可以不用alt属性吗
  14. 如何编写c语言延时程序,单片机写延时程序的几种方法
  15. MapReduce中各个阶段的分析(转自道法—自然老师)
  16. 程序员必学电脑计算机专业英语词汇 04 (200 单词)
  17. 机器学习 面试题-第二章 线性模型(大厂必问,历经半年整理)
  18. 线上教育相关的微信公众号图文这样排版,阅读量翻十倍!
  19. Java编程思想之对象入门
  20. 【AI面试】L1 loss、L2 loss和Smooth L1 Loss,L1正则化和L2正则化

热门文章

  1. 如何在Windows命令行(DOS界面)中调用 编译器 来编译C/C++源程序
  2. 豆瓣api不能访问了的解决办法
  3. gltf文件的几种形式
  4. 企企通SRM项目再获肯定,助力迈金科技一站式数字化采购平台成功上线
  5. python随机密码生成以整数17为随机数种子_python习题 随机密码生成 + 连续质数计算...
  6. 工业设计公司常对设计有什么要求?
  7. 【渝粤题库】陕西师范大学292021 初级宏观经济学 作业(高起专)
  8. 如何判断一个单链表是否有环?
  9. G711音频编码格式
  10. 华为推送 坑点 自定义intent