今天给大家带来了python抓取b站小视频的小爬虫

首先打开小视频 的网页

url = http://vc.bilibili.com/p/eden/rank#/?tab=%E5%85%A8%E9%83%A8

然后我们来分析下url:

点击排行榜,默认全部显示,往下拉滚动条,发现网页是动态加载的,然后我们打开审查元素(快捷键F12),这里我用的是火狐浏览器,先清空然后往下拉进度条,就出来了动态加载的所有信息:

找到下图所示的内容

这个就是动态加载的内容,我们点击它,看下它有些什么东西

响应里面,可以看到是json格式保存的内容,包括视频的简介,视频url等等,而这些就是我们今天的目标了!

我们先来获取消息头里面的真实网址!

观察规律找到翻页的控制参数和请求模式,next_offset=后面控制视频的加载,以10的倍数翻页,请求模式为get

我们可以开始写代码了!

首先导入模块,我们今天要用到的模块很少

import requests, time, random,re

这几个模块都可以用pip来安装,cmd下输入命令:pip install 库名

其中用time和random模块是用于爬取内容时的时间间隔,re模块是用于修正文件名的函数

好了,先写个获取源码的函数

头部信息在消息头里面的请求头,大家自行修改为自己的就好!

我们要依次保存mp4格式的视频文件,这里提供给大家一个小函数,用于剔除文件名中的不规范符号,用了re模块!

这里说明下,这段代码是在网上找的,懒的敲了

先来获取每次加载的url,注意第一次加载的url和后面加载的不一致,用if函数。

分析整个页面发现,排行榜只有100个视频,10个一批加载,所以直接写入循环,然后用json方式获取我们需要的内容即可,非常简单的一个爬虫。

完整代码和运行结果奉上!

需要注意的是在下载视频文件的时候,需要加入头部信息,不然下载不了的!

欢迎大家来我的python交流、学习群:542110741,大家一起学习进步!

喜欢就点个赞呗!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,860评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,996评论 25 708
  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,659评论 1 180
  • 1、三大组建 在Three.js中,要渲染物体到网页中,我们需要3个组建:场景(scene)、相机(camera)...
    依依玖玥阅读 642评论 0 0
  • 叶圣陶:“生活就如泉源,文章犹如溪水,泉源丰盈而不枯竭,溪水自然活泼泼地流个不歇。” 1 大学开始写日记,也不是经...
    综艺控的王姑娘阅读 499评论 0 0