爬取Bilbili小视频

在这里插入图片描述
首先打开这个小视频地址,别问为什么,问就是我只找到了这个小视频的接口…
在这里插入图片描述
然后点击排行榜,先弹出的新页面按下F12在这里插入图片描述
接下来需要找每个视频的链接了
在这里插入图片描述
###这个很明显,一下就找到了,既然找到了第一, 那么打开那些小三角,自然能找到其他的。在这里插入图片描述

随着页面下拉,注意不断更新的XHR包,会发现next_offset参数以10为单位递增。

那么现在,可以开始写代码了!

import requests
import json
import random


# 由于只能浏览到前100条数据,所以构造链接的数量确定为10。
def get_data():
    urls = ['https://api.vc.bilibili.com/board/v1/ranking/top?page_size=10&next_offset={}&tag=%E4%BB%8A%E6%97%A5%E7%83%AD%E9%97%A8&platform=pc'.format(str(i))for i in range(1, 111, 10)]
    for url in urls:
        response = json.loads(requests.get(url, headers=headers).text)
        if response['data']['items']:
            for item in response['data']['items']:
                title = item['item']['description']
                video_url = item['item']['video_playurl']
                yield title, video_url


def download_video(name, url):
    response = requests.get(url, headers=headers).content
    try:
        with open(name + '.mp4', 'wb')as f:
            f.write(response)
    except Exception as e:
        print(e)
        print('这个视频的标题不适合当文件名字,所以命名为随机数字~~~')
        with open(str(random.randint(100, 1000)) + '.mp4', 'wb')as f:
            f.write(response)
    print(name, '下载完成~~~')


headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36'}
datas = get_data()
for data in datas:
    download_video(data[0], data[1])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值