爬取B站视频

1.导入工具包

import you_get#包含各类VIP视频电影短片小视频下载
import sys
import requests
import json

2.下载

def download_vedio(vedio,url):
    #调用指令 -o 指令的参数
    sys.argv=['you-get','-o',vedio,url]
    you_get.main()

3.解析视频地址

def ExtractVideo():
    #提取网页中的视频地址
    urls='https://s.search.bilibili.com/cate/search?callback=jqeryCallback_bili_7538234669394426&main_ver=v3&search_type=video&view_type=hot_rank&order=click©_right=-1&cate_id=25&page=1&pagesize=20&jsonp=jsonp&time_from=20200408&time_to=20200415&_=1586934006126'

    #伪造浏览器请求头
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
    }
    response=requests.get(urls,headers=headers).text
    # print(response)
    json_data=json.loads(response[36:-1])
    # print(json_data)
    data=json_data['result']
    # print(data)
    # #取出播放地址
    for i in data:
        arcurl=i['arcurl']
        # print(arcurl)
    #     #保存地址
        vedio='./vedio'
        download_vedio(vedio,arcurl)

4.运行程序

ExtractVideo()
### 使用 Python 爬取 B视频数据 对于希望从B获取视频数据的需求,存在多种方法和技术可以实现这一目标。一种常用的方式是通过调用官方提供的API来获得所需的信息。 #### 利用 API 获取视频详情 为了高效且合法地收集视频的基本信息,如播放次数、点赞数量等,可以直接请求特定的API接口。例如,针对单个视频的基础资料查询,可构建如下形式的URL: ```python api_url = f"https://api.bilibili.com/x/web-interface/view?bvid={bv_id}" ``` 此链接能够返回包括但不限于标题、作者在内的多项属性[^3]。 #### 应用 Selenium 实现浏览器自动化操作 当遇到某些动态加载的内容无法仅靠简单的HTTP GET请求解决时,则需借助像Selenium这样的工具模拟真实用户的浏览行为。它允许开发者控制Web浏览器执行一系列动作,比如点击按钮或者滚动页面直到所有想要抓取的数据都呈现出来为止。这种方法特别适用于那些依赖JavaScript渲染后才显示出来的元素,像是具体的发布日期这类可能不在初次加载就暴露在外的信息[^2]。 #### 数据解析与处理 无论是采用上述哪种手段,在接收到服务器反馈之后都需要进一步解析所得到的结果。通常情况下会使用`json()`函数将响应体转换成易于理解的对象结构;而对于HTML文档来说则更多依靠BeautifulSoup库来进行DOM树的操作和筛选有用的部分。 ```python import requests from bs4 import BeautifulSoup as soup response = requests.get(url) html_content = response.text parsed_html = soup(html_content, 'lxml') data_we_want = parsed_html.find_all('div', class_='specific_class_name') # 假设我们要找的是具有特定类名的所有<div>标签内的内容 ``` 需要注意的是,在实际开发过程中应当遵循网的服务条款以及robots.txt文件中的规定,尊重版权方权益的同时也保护好个人隐私安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值