系列文章目录

python爬虫实践–晋江小说书籍分析
python爬虫实践-腾讯视频弹幕分析
python爬虫实践-B站弹幕分析


文章目录

  • 系列文章目录
  • 前言
  • 目录
  • 主程序模块
  • main()函数
  • 1.爬取网页
  • 2.开始解析数据
  • 3.存放数据
  • 结语

前言

编写这个程序的出发点是……研究弹幕文化??额,不是,就是好奇,大家都发些什么,为什么有些弹幕反响很高,我每次发都无人问津(生气)

那还是和上次爬取晋江小说的程序流程差不多,就是进入网页,提取数据,存储数据。不同的只是网页编排方式不一样,只要找到合适的正则表达式,就可以把数据提出来。
哦,还有一个大问题,找到存储弹幕数据的文档规律最重要,这个解决了,基本这个程序就完成了。
当然,为了方便我们的数据更有质量,可以用程序筛选一下,比如重复的弹幕就只记录一条,100个点赞以下的弹幕不记录,还有按照点赞数从高到低排序。
下面开始上代码啦啦啦啦

目录

主程序模块

这个模块,把弹幕文档的基本格式先固定下来,就是baseurl,因为一集弹幕它可能有很多个文档,这些文档都由timestamp的值来区分,规律就是第一个文档的timestamp值是15,下一个文档的timestamp值加30,…………

if __name__=='__main__':#爬取整集弹幕baseurl = 'https://mfm.video.qq.com/danmu?otype=json&callback=jQuery191006002695521294066_1613526990594&target_id=6402048035%26vid%3Do003502jkv8&timestamp='for i in range(15, 2595, 30):url = baseurl + str(i)main(url)print('{}爬取完毕'.format(url))print('全部爬取完毕!')

这个程序运行到main()的时候会走进子函数,我们爬取网页、提取数据、存储数据的过程都是在子函数中完成的,现在我们一个一个来看这些子函数

main()函数

main()函数主要也就是定参数,规范流程,把爬取网页模块儿的输出数据传入解析数据模块儿,然后把解析数据模块儿的输出数据传入存放数据模块儿……

#定义全局变量
flag = 0def main(url):#基础网址savename = '暗恋橘生淮南.docx'title = '第二集'link = 'https://v.qq.com/x/cover/mzc002002vcxot9.html'# 1.爬取网页bs = crawlweb(url)# 2.开始解析数据comments = analysedata(bs)#print(comments)# 3.存放数据savebarrage(comments, title, link, savename)

接下来进行第一步

1.爬取网页

def crawlweb(url):#伪装headershead = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36 Edg/87.0.664.75"}html = requests.get(url,headers=head)bs = json.loads(html.text[html.text.find('{'):-1], strict = False)# print(bs)# strict = Falsereturn bs

这部分要构造一个协议头,用来把程序伪装成浏览器。
其次主要就是用了loads函数来提取网页的html代码。

2.开始解析数据

def analysedata(bs):#存储数据df = pd.DataFrame()contents=[]upcounts=[]#遍历获取目标字段for i in bs['comments']:content = i['content']  #弹幕内容upcount = i['upcount'] #点赞数列表# cache = pd.DataFrame({'内容':[content],'评论点赞':[upcount]})# df = pd.concat([df,cache])#print(df)contents.append(content)upcounts.append(upcount)dic = dict(zip(contents,upcounts))#删除点赞数在100以下的元素for key, value in list(dic.items()):if value<100:del(dic[key])#排序comments = sorted(dic.items(), key=lambda dic:dic[1],reverse=True)return comments

这段代码还有可以改进的地方:朝字典中添加元素时,如果存在相同的键,就会替换掉;如果某条内容很多人发,第一条点赞数多,最后一条点赞数少,那么这条内容就会被删除,造成统计的数据不准确,很有可能这条内容就是十分重要。

3.存放数据

def savebarrage(comments,title,link,savename):global flagif flag == 0:document = Document()   #savename不存在document.add_heading(title, 0)document.add_heading(link, 1)flag = 1else:document = Document(savename) #savaname存在#添加段落,文本可以包含制表符(\t)、换行符(\n)或回车符(\r)等#添加标题,并设置级别,范围:0 至 9,默认为1'''for i in range(len(comments[0]))item = comments[0][i]+'comments[1][i]document.add_paragraph()document.add_paragraph(comments[1][i])'''#在doc中添加表格存储table = document.add_table(rows=1, cols=2)  # 添加表hdr_cells = table.rows[0].cells  # 设置表首行标题hdr_cells[0].text = '内容'  # 表首行标题赋值hdr_cells[1].text = '点赞数'#for循环将records内容赋值到单元格内for item in comments:row_cells = table.add_row().cellsrow_cells[0].text = item[0]row_cells[1].text =str(item[1])#print(comments[0])#保存.docx文档document.save(savename)

这段有个需要处理的地方在于:当我们用来存储数据的文件不存在时,我们可以直接用代码写入,这时候程序会自动创建该文件。
但是如果该文件原本存在,而我们用代码往里面写东西的时候,如果直接写,那么程序不会打开原文件,而是会重新创建一个新文件,最后保存的时候覆盖原文件。
所以,当原文件存在时,我们要写入,需要打开原文件。
这里的flag就是用来判断原文件存不存在的。

结语

这个小程序,有很多不完整的地方,因为我时间和能力都有限,并不能把它做到很美观,很友好,想到以下几个可改进的地方给大家参考:
1.可改进:如果要获取整个电视剧每一集的弹幕数量,可以通过观察每一集链接中的规律,根据规律修改参数,然后就可以提取了
2.可以把所有函数的参数都单独提出来,不要放到函数中去,不然修改变量的时候可能不明白是啥意思或者修改不完全(目前该函数修改变量的地方是主函数和main函数)

python爬虫实践-腾讯视频弹幕分析相关推荐

  1. python爬取腾讯视频弹幕_用Python爬取腾讯视频弹幕

    原标题:用Python爬取腾讯视频弹幕 via:菜J学Python 1.网页分析 本文以爬取<脱口秀大会 第3季>最后一期视频弹幕为例,首先通过以下步骤找到存放弹幕的真实url. 通过删减 ...

  2. python抓取腾讯视频弹幕_Python实战 | 如何抓取腾讯视频弹幕

    原标题:Python实战 | 如何抓取腾讯视频弹幕 当代年轻人的快乐是网络给的. 如果有人吐槽周末太无聊,他们一定会反驳: 是追剧不香吗? 是吃鸡不好玩吗? 周末辣么短,怎么会无聊呢? 诚然,追剧和游 ...

  3. python 爬取腾讯视频弹幕

    腾讯视频弹幕地址:http://mfm.video.qq.com/danmu?timestamp=0&target_id=xxxxx 1.在视频地址中获取target_id 2.通过视频cid ...

  4. python抓取腾讯视频弹幕_Python爬虫练习:腾讯视频弹幕数据采集

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于菜鸟学Python数据分析 1.网页分析 本文以爬取<脱 ...

  5. python爬虫-获取腾讯视频的弹幕

    一位苦于信息安全的萌新小白帽,记得关注给个赞,谢谢 本实验仅用于信息防御教学,切勿用于其它用途 requests库爬取腾讯视频的弹幕 二话不说,先上代码 执行结果 二话不说,先上代码 import r ...

  6. python爬取腾讯视频弹幕_网络爬虫实战(四):爬取腾讯视频电视剧弹幕-Go语言中文社区...

    文章目录 实战背景 说到被翻拍最多的大概就是金庸先生的剧了,有华人的地方就会有金庸剧.而在他的多部小说中,翻拍次数最多的无疑就是<倚天屠龙记>了,而且次数已经高达十四次.最早的是1963香 ...

  7. python爬虫取腾讯视频评论

    文章目录 1. 爬取评论内容代码 2.爬取评论时间代码 3.数据处理部分 3.1 评论的时间戳转换为正常时间 3.2 评论内容读入csv 3.3 统计一天各个时间段内的评论数 3.4 统计最近评论数 ...

  8. python爬取B站视频弹幕分析并制作词云

    1.分析网页 视频地址: www.bilibili.com/video/BV19E- 本身博主同时也是一名up主,虽然已经断更好久了,但是不妨碍我爬取弹幕信息来分析呀. 这次我选取的是自己 唯一的爆款 ...

  9. python爬取胡歌相关视频弹幕,分析并制作词云

    养成习惯,先赞后看!!! 目录 1.分析网页 2.爬虫+jieba分词+制作词云 2.1爬虫 2.2jieba分词 2.3制作词云 3.成品展示 4.完整代码 1.分析网页 视频地址:https:// ...

  10. python爬虫实践--晋江小说书籍分析

    系列文章目录 python爬虫实践–晋江小说书籍分析 python爬虫实践-腾讯视频弹幕分析 python爬虫实践-B站弹幕分析 文章目录 系列文章目录 目录 爬取晋江排行榜 爬取文案 其它想法 结语 ...

最新文章

  1. 【linux】Matchbox(一):启动脚本
  2. ElasticSearch是什么?为什么快?倒排索引是什么?ElasticSearch的应用?
  3. SQL Server Indexes
  4. java mysql乱码_41、java与mysql乱码的问题
  5. linux ssh服务端下载文件,Linux SSH服务端配置文件设置
  6. 通信中的频谱效率与能量效率
  7. [Leetcode][第75题][JAVA][颜色分类][双(三)指针][计数排序]
  8. 查询链接服务器信息,SQL Server链接服务器
  9. UNIX(进程间通信):03---僵尸进程
  10. redis-day1
  11. 逆向工程-真码保存在系统文件破解QQ游戏对对碰助手
  12. 【Spring】Spring hibernate JSR-303 Validator 自定义参数校验器
  13. 【转载】规则化和模型选择(Regularization and model selection)
  14. ssl客户端与服务端通信的demo
  15. 您无权查看或编辑目前的权限设置;但是,您可以取得所有权或更改审核设置
  16. PetShop 4.0学习笔记:消息队列MSMQ
  17. 机器学习算法篇:最大似然估计证明最小二乘法合理性
  18. Windows10系统教育版和专业版区别在哪里?
  19. 如何官方的发布通知(互亿无线)?
  20. office办公所有版本齐全

热门文章

  1. vue项目导入excel数据
  2. 知网HTML阅读是什么,HTML – 屏幕阅读器究竟是什么?我应该如何处理我的网站?...
  3. Web前端工程师知识脉络图
  4. latex表格实现换行
  5. Python生成自定义表头Excel
  6. Windows安装宝塔后跳过绑定手机号
  7. android 陀螺仪滤波_高精度MEMS陀螺仪的滤波算法研究
  8. matlab 对数回归,对数拟合
  9. 2020美赛成绩什么时候出?
  10. 2022数学建模美赛回顾