Python如何实现爬取B站视频


Posted in Python onMay 20, 2020

5月3日晚,央视在《新闻联播》前播放了B站青年宣言片《后浪》,这是B站首次登陆央视黄金时段,今天在朋友圈陆续看到相关的视频。最早用B站的同学都知道,B站是和A站以异曲同工的鬼畜视频及动漫,进入到大众视野的非主流视频网站。哔哩哔哩现为国内领先的年轻人娱乐、文化社区,该网站于2009年6月26日创建,被粉丝们亲切的称为“B站”。

B站之所以火,是因为趣味与知识并存。它是一个重度宅腐二次元集结地。B站包含动漫、漫画、游戏,也有很多由繁到简、五花八门的视频,很多冷门的软件和绘画技巧在B站都可以找到完整的教学视频。正如一句“你在B站看番,我在B站学习”,B站还是有一些质量比较好的学习视频。当你在B站上看到喜欢的视频想保存下来时,怎么办呢?

转入正题,本篇推文主要介绍如何将B站上把喜欢的视频下载下来,帮助更多需要学习的小伙伴,详细步骤如下:

  • 网页分析
  • 视频下载方法
  • 成果展示

微信视频号的加入,再度引燃了短视频领域,今天我们爬取B站的每天播放量最多的小视频,其他类型的视频可以参考这个方法。

Python如何实现爬取B站视频

网页分析

网址为:

'http://vc.bilibili.com/p/eden/rank#/?tab=全部'

我们可以看到Request URL这个属性值,我们向下滑动加载视频的过程中,发现只有这段url是不变的。next_offset 会一直变化,我们可以猜测,这个可能就是获取下一个视频序号,我们只需要把这部分参数取出来,把 next_offset 写成变量值,用 JSON 的格式返回到目标网页即可。

Python如何实现爬取B站视频

Python如何实现爬取B站视频

视频下载方法

上一部分已对网页进行了分析,现在我们可以利用requests.get方法来获取B站上的小视频。

核心代码

def get_json(url):
  headers = {
    'User-Agent':
      'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
  }

  params = {
    'page_size': 10,
    'next_offset': str(num),
    'tag': '今日热门',
    'platform': 'pc'
  }

  try:
    html = requests.get(url, params=params, headers=headers)
    return html.json()

  except BaseException:
    print('request error')
    pass

def download(url,path):
  start = time.time() # 开始时间
  size = 0
  headers = {
    'User-Agent': 
    'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
  }

  response = requests.get(url,headers=headers,stream=True) 
  chunk_size = 1024 
  content_size = int(response.headers['content-length']) 
  if response.status_code == 200:
    with open(path,'wb') as file:
      for data in response.iter_content(chunk_size=chunk_size):
        file.write(data)
        size += len(data)

成果展示

上一部分我们已经展示了如何用Python下载视频的方法,下面我们进行效果展示

Python如何实现爬取B站视频

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用在线API查询IP对应的地理位置信息实例
Jun 01 Python
深入理解Python中的元类(metaclass)
Feb 14 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
Jun 30 Python
Python实现在线音乐播放器
Mar 03 Python
python多线程之事件Event的使用详解
Apr 27 Python
python 移除字符串尾部的数字方法
Jul 17 Python
Python创建或生成列表的操作方法
Jun 19 Python
python判断一个对象是否可迭代的例子
Jul 22 Python
Python udp网络程序实现发送、接收数据功能示例
Dec 09 Python
屏蔽Django admin界面添加按钮的操作
Mar 11 Python
Python 把两层列表展开平铺成一层(5种实现方式)
Apr 07 Python
Python写情书? 10行代码展示如何把情书写在她的照片里
Apr 21 Python
django在开发中取消外键约束的实现
May 20 #Python
520使用Python实现“我爱你”表白
May 20 #Python
django 外键创建注意事项说明
May 20 #Python
在django admin中配置搜索域是一个外键时的处理方法
May 20 #Python
Python使用Paramiko控制liunx第三方库
May 20 #Python
解决django框架model中外键不落实到数据库问题
May 20 #Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
May 20 #Python
You might like
php获取域名的google收录示例
2014/03/24 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
PHP中实现Bloom Filter算法
2015/03/30 PHP
PHP实现事件机制的方法
2015/07/10 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
2015/11/25 PHP
js 对象是否存在判断
2009/07/15 Javascript
jquery分页插件jquery.pagination.js实现无刷新分页
2016/04/01 Javascript
js编写当天简单日历效果【实现代码】
2016/05/03 Javascript
AngularJS上拉加载问题解决方法
2016/05/23 Javascript
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
vue实现一拉到底的滑动验证
2019/07/25 Javascript
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
[08:04]TI4西雅图DOTA2前线报道 海涛探访各路人马
2014/07/09 DOTA
python实现树形打印目录结构
2018/03/29 Python
python实现textrank关键词提取
2018/06/22 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
2019/06/24 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
Html5游戏开发之乒乓Ping Pong游戏示例(三)
2013/01/21 HTML / CSS
方法名是否可以与构造器的名字相同
2012/06/04 面试题
ASP.NET中的身份验证有那些
2012/07/13 面试题
C#怎么让一个窗口居中显示?
2015/10/20 面试题
2014端午节活动策划方案
2014/01/27 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
yy生日主持词
2014/03/20 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
正规借条模板
2015/05/26 职场文书