zoukankan      html  css  js  c++  java
  • 抓取B站小视频

    抓取B站小视频的代码如下:

    #请求库
    import requests


    #请求头部信息(用户代理)
    headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
    }

    #定义全局变量
    count=1

    def video_downloads(url_video):
    '''
    请求视频的下载链接 把视频保存到本地
    :param url_video: 视频的下载链接
    :return:
    '''
    global count
    #请求视频的下载链接,因为请求的视频是数据流的方式,所以请求方式中要使用stream
    response_video=requests.get(url_video,headers=headers,stream=True)
    #每次下载的数据大小 1024单位为KB,表示1024KB/s
    chunk_size=1024
    #判断请求的视频下载链接是否成功
    if response_video.status_code==200:
    with open('B站小视频/{}.mp4'.format(count),'ab')as f:
    for data in response_video.iter_content(chunk_size=chunk_size):
    f.write(data)
    count += 1

    def exrta_video_url():
    '''
    获取视频的下载地址,并调用下载函数进行下载
    :return:
    '''

    #请求网页地址并且获取到服务器所返回的数据

    #1、网页的请求地址
    #url的获取,在网页的Network下的XHR中进行查找rquest中的url.如何验证该URL是否为我们需要查找到的url.可以通过查看review返回的数据
    url='https://api.vc.bilibili.com/clip/v1/video/index?page_size=30&need_playurl=0&next_offset=-1&has_more=1&order=&platform=pc'

    response_data=requests.get(url,headers=headers).json()
    data=response_data.get('data').get('items')
    for i in data:
    #视频的下载地址 video_downloads_url
    video_downloads_url=i.get('item').get('video_playurl')
    #调用下载函数进行下载
    video_downloads(video_downloads_url)

    exrta_video_url()

      当然对于用户代理,我们还可以使用随机生成的方式进行生成。代理部分代码如下(其他代码部分不变):

    #请求库
    import requests
    #用户代理库‘
    from fake_useragent import UserAgent
    
    ua=UserAgent()
    
    #请求头部信息(用户代理)
    headers={
    	'User-Agent':ua.random
    }
    

      【保存路径说明】

    ../表示当前路径的上层路径。

    ~表示家路径

    /根路径

    ./当前同路径,可以不用写。                                                       

  • 相关阅读:
    Python使用 odbc、jdbc与 Object Relational Mapping (ORM)进行数据库开发
    Tensorflow安装
    学生作业
    大学课程推荐
    人工智能的开发工具
    android开发
    jdbc-odbc桥
    开博随记
    利用jq实现自适应边缘情况的气泡Tip
    一篇完整的FlexBox布局指南
  • 原文地址:https://www.cnblogs.com/benpao1314/p/11304210.html
Copyright © 2011-2022 走看看