python爬取腾讯视频弹幕_网络爬虫实战(四):爬取腾讯视频电视剧弹幕-Go语言中文社区...
文章目录
实战背景
说到被翻拍最多的大概就是金庸先生的剧了,有华人的地方就会有金庸剧。而在他的多部小说中,翻拍次数最多的无疑就是《倚天屠龙记》了,而且次数已经高达十四次。最早的是1963香港导演将这个小说以电影形式拍成了上下两集。虽然是第一次,但不得不说导演也是非常的有新意,和金庸多次沟通后,也是将很多情节做了一些改变,比如将武当七侠排行最小的改成了师妹,而金毛谢逊也只是瞎一只眼等等。
随后更是很多导演对这部小说进去了翻拍,除了翻拍成几部电影,同样的也进行了电视剧形式的翻拍。香港,内地也多次反拍,而说到内地大家最熟悉的莫过于苏有朋这版了,贾静雯版的赵敏令我印象深刻。新版《倚天屠龙记》最近热播中,老版的老版的周芷若扮演者周海媚这回升级成灭绝师太,新版的周芷若扮演者祝绪丹美艳银屏,对于新版本观众老爷们到底有什么想说的呢?随即想到可以再视频中将弹幕爬取,以便于进行后续的分析。
网站分析
打开腾讯视频的网页,点开新版倚天屠龙记,播放视频,弹幕随之出现再屏幕之上。
首先我们需要找到相应的弹幕出自于哪里,打开网页开发者工具,Ctrl+F输入:等了好久,找到弹幕所在的页面
观察发现这是一个json,其弹幕内容包含在该json中的comments之中
找到页面之后观察该页面的请求头,请求方式为get,target_id为该电视剧的网页ID,得到该电视剧的链接地址主要由target_id和timestamp时间戳构成,形如 http://mfm.video.qq.com/danmu?timestamp=0&target_id=xxxxx
且该json表明时间戳每30会更新一次弹幕信息,单位为秒,对网站进行分析之后我们便来动手编写代码吧!
编写代码
timestamp每增加30就会更改整个弹幕页面,利用format对链接进行改写,在循环中每次增加30,并更改target_id即电视剧的每一集来获取每一集的弹幕信息,下面便是编写的获取弹幕的函数。这里一共取了前五集进行爬取。
def get_danmu(self):
"""
爬取一集新版倚天屠龙记电视剧的弹幕
"""
count=0
target_list=[str(3748894695),str(3748894707),str(3748894703),str(3748894705),str(3748894704)]
for target in target_list:
url='http://mfm.video.qq.com/danmu?timestamp={}&target_id='+target
page=1
for i in range(100):
req_url=url.format(30*page)
r=requests.get(req_url, headers=self.headers)
for danmu in r.json(strict=False)['comments']:
self.parse_comment(danmu=danmu)
page+=1
count+=1
print("已将第{}集弹幕信息存入数据库".format(count))
获取的json构造成字典,主要包括弹幕内容,发弹幕用户的昵称,点赞数等等,然后逐条插入MongoDB数据库
def parse_comment(self, danmu):
"""
解析函数,用来解析爬回来的json评论数据,并把数据保存进mongodb数据库
"""
dmdic = {'content': danmu['content'], 'id': danmu['commentid'],
'upcount': danmu['upcount'],'timepoint': danmu['timepoint'],
'username': danmu['opername']
} # 构造弹幕字典
self.db['TecentVedioDanmu'].insert_one(dmdic)
爬取结果
查看已存入数据库的数据信息
将数据库信息读取,发现共计54301条数据
RangeIndex: 54301 entries, 0 to 54300
Data columns (total 5 columns):
content 54301 non-null object
id 54301 non-null object
timepoint 54301 non-null int64
upcount 54301 non-null int64
username 54301 non-null object
dtypes: int64(2), object(3)
memory usage: 2.1+ MB
content id timepoint upcount username
0 曾舜晞你的小可爱突然出现 6506515190020290832 30 183 Leyla
1 竟然还是这个 主题曲 太好听 6506499481202570807 31 348 慢慢
2 哇塞终于出来了等了好久了 6506515196232055107 31 168 Leyla
3 还没到点呢,怎么回事 6506520554738563861 31 135 李逍遥
4 有周海媚?我好像看到了 6506499433775511859 32 182 莫非
python爬取腾讯视频弹幕_网络爬虫实战(四):爬取腾讯视频电视剧弹幕-Go语言中文社区...相关推荐
- [day4]python网络爬虫实战:爬取美女写真图片(Scrapy版)
l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.Scrapy简介 4. ...
- [day1]python网络爬虫实战:爬取美女写真图片
l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.实现 1.分析url格 ...
- [day2]python网络爬虫实战:爬取美女写真图片(增强版)
l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.实现 1.分析url格 ...
- Python 网络爬虫实战:爬取知乎回答中的全部图片
平时逛知乎的时候,经常能看到很多很棒的图片,精美的壁纸,搞笑的表情包,有趣的截图等等,总有想全部保存下来的冲动. 于是在一个小老弟的拜托之下,我把之前的知乎爬虫改造了一下,改装成了一个可以下载知乎回答 ...
- Python可以这样学(第十季:网络爬虫实战)-董付国-专题视频课程
Python可以这样学(第十季:网络爬虫实战)-83人已学习 课程介绍 陆续介绍和分享一些网络爬虫方面的案例,Python基础知识可以参考前面的"Python可以这样学&qu ...
- Python网络爬虫实战:爬取携程网酒店评价信息
这个爬虫是在一个小老弟的委托之下写的. 他需要爬取携程网上的酒店的评价数据,来做一些分词和统计方面的分析,然后来找我帮忙. 爬这个网站的时候也遇到了一些有意思的小麻烦,正好整理一下拿出来跟大家分享一下 ...
- Python网络爬虫实战:抓取和分析天猫胸罩销售数据
本文实现一个非常有趣的项目,这个项目是关于胸罩销售数据分析的.Google曾给出了一幅世界女性胸部尺寸分布地图 ,从地图中可以明显看出中国大部分地区呈现绿色(表示平均胸部尺寸为A罩杯),少部分地区呈现 ...
- python爬虫爬取新闻标题及链接_网络爬虫百度新闻标题及链接爬取
1.主题:百度新闻爬取 2. python代码: import requests from bs4 import BeautifulSoup def getHTMLText(url): try: r ...
- python爬去新浪微博_荐爬虫实战 新浪微博爬取 详细分析
目标 #2020.5.22 #author:pmy #目标:爬取最爱的绵羊的微博,包含时间,文本内容,点赞数,评论数与转发数 #在更换博主时主要在于修改headers中的referer和参数中的con ...
最新文章
- 个人网站第四次改版了
- C语言求m中n个数字的组合
- 在c语言中log函数的作用,C++_在C语言中使用对数函数的方法,C语言log()函数:返回以e为底的 - phpStudy...
- caffe学习(1) ubunu 16.04+caffe+cuda8.0+opencv3.1安装
- mysql安装了老版本_Windows 环境下 MySQL 5.7 安装配置指南
- 顺藤摸瓜的解决GDB的DEBUG中出现的小问题
- [文艺节目/礼仪大赛策划方案]图:选手出场时?如何用Flash透明渲染PPT?展示排行榜时如何使用PPT及Flash渲染?
- 百度优化排名_思路和步骤
- JavaScript调用pc和手机摄像头
- css 绘制心形图案
- 一个神奇的测试_神奇的心理测试:一个问题就能测试出你的情商!超准慎测
- 在Apple开发官网测试TestFlight
- (二)计算机取证-案件确认书及证据表
- 北漂程序员一天的生活
- 一款由React Native编写的开源App--Gank
- 机械检索和计算机检索,手工检索和计算机检索的优缺点
- arm linux 俄罗斯方块,ARM 俄罗斯方块 - 下载 - 搜珍网
- oracle REPLACE 函数 介绍
- java2048设计说明_基于Android的2048游戏设计与实现论文+任务书+开题报告+答辩+源码...
- Android 11.0 NetworkMonitor导致的wifi连接后显示x问题解决方法