文章目录

实战背景

说到被翻拍最多的大概就是金庸先生的剧了,有华人的地方就会有金庸剧。而在他的多部小说中,翻拍次数最多的无疑就是《倚天屠龙记》了,而且次数已经高达十四次。最早的是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语言中文社区...相关推荐

  1. [day4]python网络爬虫实战:爬取美女写真图片(Scrapy版)

    l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.Scrapy简介 4. ...

  2. [day1]python网络爬虫实战:爬取美女写真图片

    l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.实现 1.分析url格 ...

  3. [day2]python网络爬虫实战:爬取美女写真图片(增强版)

    l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.实现 1.分析url格 ...

  4. Python 网络爬虫实战:爬取知乎回答中的全部图片

    平时逛知乎的时候,经常能看到很多很棒的图片,精美的壁纸,搞笑的表情包,有趣的截图等等,总有想全部保存下来的冲动. 于是在一个小老弟的拜托之下,我把之前的知乎爬虫改造了一下,改装成了一个可以下载知乎回答 ...

  5. Python可以这样学(第十季:网络爬虫实战)-董付国-专题视频课程

    Python可以这样学(第十季:网络爬虫实战)-83人已学习 课程介绍         陆续介绍和分享一些网络爬虫方面的案例,Python基础知识可以参考前面的"Python可以这样学&qu ...

  6. Python网络爬虫实战:爬取携程网酒店评价信息

    这个爬虫是在一个小老弟的委托之下写的. 他需要爬取携程网上的酒店的评价数据,来做一些分词和统计方面的分析,然后来找我帮忙. 爬这个网站的时候也遇到了一些有意思的小麻烦,正好整理一下拿出来跟大家分享一下 ...

  7. Python网络爬虫实战:抓取和分析天猫胸罩销售数据

    本文实现一个非常有趣的项目,这个项目是关于胸罩销售数据分析的.Google曾给出了一幅世界女性胸部尺寸分布地图 ,从地图中可以明显看出中国大部分地区呈现绿色(表示平均胸部尺寸为A罩杯),少部分地区呈现 ...

  8. python爬虫爬取新闻标题及链接_网络爬虫百度新闻标题及链接爬取

    1.主题:百度新闻爬取 2. python代码: import requests from bs4 import BeautifulSoup def getHTMLText(url): try: r ...

  9. python爬去新浪微博_荐爬虫实战 新浪微博爬取 详细分析

    目标 #2020.5.22 #author:pmy #目标:爬取最爱的绵羊的微博,包含时间,文本内容,点赞数,评论数与转发数 #在更换博主时主要在于修改headers中的referer和参数中的con ...

最新文章

  1. 个人网站第四次改版了
  2. C语言求m中n个数字的组合
  3. 在c语言中log函数的作用,C++_在C语言中使用对数函数的方法,C语言log()函数:返回以e为底的 - phpStudy...
  4. caffe学习(1) ubunu 16.04+caffe+cuda8.0+opencv3.1安装
  5. mysql安装了老版本_Windows 环境下 MySQL 5.7 安装配置指南
  6. 顺藤摸瓜的解决GDB的DEBUG中出现的小问题
  7. [文艺节目/礼仪大赛策划方案]图:选手出场时?如何用Flash透明渲染PPT?展示排行榜时如何使用PPT及Flash渲染?
  8. 百度优化排名_思路和步骤
  9. JavaScript调用pc和手机摄像头
  10. css 绘制心形图案
  11. 一个神奇的测试_神奇的心理测试:一个问题就能测试出你的情商!超准慎测
  12. 在Apple开发官网测试TestFlight
  13. (二)计算机取证-案件确认书及证据表
  14. 北漂程序员一天的生活
  15. 一款由React Native编写的开源App--Gank
  16. 机械检索和计算机检索,手工检索和计算机检索的优缺点
  17. arm linux 俄罗斯方块,ARM 俄罗斯方块 - 下载 - 搜珍网
  18. oracle REPLACE 函数 介绍
  19. java2048设计说明_基于Android的2048游戏设计与实现论文+任务书+开题报告+答辩+源码...
  20. Android 11.0 NetworkMonitor导致的wifi连接后显示x问题解决方法

热门文章

  1. diffcount 代码差异统计工具
  2. excel中十六进制Unix时间戳转换为日期
  3. 我的对日外包工作的经历
  4. 彩虹云商城QQ快捷登录设置教程,附QQ互联分发api平台地址
  5. Spring Boot 2.4.0 M2 Release Notes持续更新
  6. 怎么修改图片上的文字(photoshop技巧)
  7. android 苹果支付,谷歌Android M借鉴苹果?新增移动支付功能Android Pay
  8. 博客随笔《文章目录——php》大纲
  9. Mogafx欧元技术预测
  10. 扫描枪的数据获取问题