python爬取哔哩哔哩视频_python爬取哔哩哔哩小视频
抓取B站每日的小视频排行榜,本周,本月采用同样方法。
网址:https://vc.bilibili.com/p/eden/rank#/?tab=全部
工具:python3,谷歌浏览器,pycharm
模块:requests,time,random
网页:
打开开发者工具,按F12。刷新网页,抓取数据。我们会抓取到红色部分的一条数据。
点击这条数据,先看一下头部(Headers)。
再看一下参数信息
很明显请求的url是由基本网址https://api.vc.bilibili.com/board/v1/ranking/top?和参数拼接而成。
我们点击Preview,查看,发现是一个json数据,和我们爬取的视频一一对应关系。可以轻松获取文章标题,和下载数据。
我们很容易知道,该视频网站是动态加载的,我们继续往下滑动,看看是否还有这样的json数据,如果有,请求网址的参数有何变化。
果然还有这样的数据,我们再看一下头部的参数。
继续往下滑视频,
又发现了数据,观察参数变化,发现只有next_offset这个字段在变,每次都比前一个多10。这就好办了,把可变的next_offset写成变量,返回目标网页的json数据。
这就是完整的分析过程。下面是完整代码:
完整代码:
import requests
import time
import random
#获取网页原数据
def get_json(url):
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) 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,headers=headers,params=params)
return html.json()
except:
print("请求错误")
pass
#下载视频
def downloader(url,path):
start=time.time()#开始时间
size=0
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}
response=requests.get(url,headers,stream=True)#stream属性必须带上
chunk_size=1024#每次下载的数据大小
content_size=int(response.headers['content-length'])#总大小
if response.status_code==200:
print('[文件大小]:%0.2fMB'%(content_size/chunk_size/1024))#换算单位
with open(path,'wb')as f:
for data in response.iter_content(chunk_size=chunk_size):
f.write(data)
size+=len(data)
if __name__ == '__main__':
for i in range(10):
url='http://api.vc.bilibili.com/board/v1/ranking/top?'
num=i*10+1
html=get_json(url)
infos=html['data']['items']
for info in infos:
title=info['item']['description']#小视频的标题
video_url=info['item']['video_playurl']#视频地址
print(title,video_url)
#为了防止视频没有video_url
try:
downloader(video_url,path="%s.mp4"%title)
print("成功下载一个")
except BaseException:
print("下载失败")
pass
time.sleep(int(format(random.randint(2,8))))#设置随机等待时间
如果想爬取每周,或每月的视频,只需更改参数params中的tag,把今日热门改成本周热门,本月热门即可。
python爬取哔哩哔哩视频_python爬取哔哩哔哩小视频相关推荐
- python 爬取搞笑视频_Python爬取知乎上搞笑视频,一顿爆笑送给大家
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:Huangwei AI 来源:Python与机器学习之路 PS:如有需 ...
- python 爬取直播弹幕视频_Python爬取b站任意up主所有视频弹幕
爬取b站弹幕并不困难.要得到up主所有视频弹幕,我们首先进入up主视频页面,即https://space.bilibili.com/id号/video这个页面.按F12打开开发者菜单,刷新一下,在ne ...
- python爬虫小说下载到txt文档_python 爬取网络小说 清洗 并下载至txt文件
什么是爬虫 网络爬虫,也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人.其目的一般为编纂网络索引. 网络搜索引擎等站点通过爬虫软件更新自身的网站内容或其对其他网站的索引.网络爬虫可以 ...
- 抖小火山视频服务器维护中,抖音、火山小视频、悟空问答昨天都崩了
原标题:抖音.火山小视频.悟空问答昨天都崩了 导读 宕机属于电脑运作的一种正常现象,任何电脑都会出现这种情况,服务器也不例外. 刺猬公社 | 石灿 昨天下午6点左右,抖音.火山小视频和悟空问答崩了!头 ...
- 手机端小视频(抖音、快手、火山小视频)的视频下载分析
抖音 1. 获取播放url的json数据 请求的url https://aweme-hl.snssdk.com/aweme/v1/feed/ 请求的方式 get headers headers = { ...
- python爬app视频_python爬取抖音APP视频教程
本文讲述爬取抖音APP视频数据(本文未完,后面还有很多地方优化总结) 公众号回复:抖音 即可获取源码 1.APP抓包教程,需要用到fiddler fiddler配置和使用查看>>王者荣耀盒 ...
- python实现qq登录腾讯视频_Python爬取腾讯视频评论的思路详解
一.前提条件 安装了Fiddler了(用于抓包分析) 谷歌或火狐浏览器 如果是谷歌浏览器,还需要给谷歌浏览器安装一个SwitchyOmega插件,用于代理服务器 有Python的编译环境,一般选择Py ...
- python 爬取直播弹幕视频_python爬取斗鱼B总直播弹幕
原博文 2018-07-10 18:00 − 在某群中看到关于弹幕爬取的需求,又因为斗鱼比较OP,就以这个作为切入点. 如果你想了解如何获取弹幕,我的这个例子就可以让你豁然开朗,对于哪些没有开发弹幕的 ...
- python爬抖音短视频_python爬取抖音小视频
import os,json,requests #伪装头 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) App ...
- python爬取cctalk视频_Python爬取汽车之家视频
大家好,,我是小乐,,今天给大家带来一篇介绍爬虫爬取视频的文章 这个内容的话非常简单,无任何复杂的操作,那么就直接上代码啦!!! # coding=utf-8 import requests &quo ...
最新文章
- 软件缺陷生命周期图示及当中涉及到的缺陷的状态
- NodeJS”热部署“代码,实现动态调试
- 期末考试前的预习,科目:化工设备与反应器(3)
- 核心技术java基础_JAVA核心技术I---JAVA基础知识(集合set)
- Android--音乐播放器
- How to Install MariaDB 10 on CentOS 6.7
- 优化-SQL Server 05 的动态管理视图DMV和函数DMF
- 中国移动亮相2012亚洲移动通信博览会
- 广袤之中:沿着克拉克三大定律,读懂华为的最深期待
- 时间序列可预测性度量
- FPGA蜂鸣器演奏音乐
- 基于canoe 新建一个lin工程_详细步骤讲解如何在CANoe中创建一个LIN通讯工程(多图+详解)...
- Arduino 利用串口缓冲区监听的方式读取数据
- 伪元素写竖线_[CSS] 用伪元素:after实现分割线和气泡
- 解决CondaVerificationError: The package for pytorch located at...
- GPS导航电文——第四、五子帧数据解析
- 将字符串中的小写字母转换为相应的大写字母
- 网上书店黑盒测试_网上书店管理系统
- 数字身份_数字身份作为投资
- Unity教程初级Ruby‘s Adventure游戏实现带工程源码
热门文章
- 【JAVA】List常用移除、过滤、去重、flatMap、peek等操作
- coj 1256 天朝的单行道
- android banner图片错位,android轮播图Banner的使用及详解
- [精简]快速认识钢琴键盘
- html中图片以图片中心放大旋转,图片旋转放大居中
- [转]ubuntu常用软件
- 使用jupyter环境在数据集处理中遇到.ipynb_checkpoints no such file or directory的问题
- 如何把docx变为ass_电影字幕转Word教程
- python怎么去掉视频字幕_用Python处理字幕文件
- Bitcion Core 目录说明、使用说明、bitcoin.conf 配置说明