python爬取视频

适合新手小白揣摩;
环境准备:

设备软件版本
windows 环境(可上网)pycharm 3
# 爬虫思路
# 1.确定爬取的url路径,headers参数
# 2.发送请求, --- requests 模拟浏览器发送请求,获取响应数据
# 3.解析数据, --- json模块, 把json字符串转换成python可交互的数据类型
# 4.保存数据, --- 保存到目标文件夹中


import requests
import json


def video_spider():
    # 遍历需要爬取的页数 一共爬取10页。
    for page in range(1,11):
        # 将爬取该网页的页数打印出来
        print('+++++++++++++正在爬取第{}页数据++++++++++++++'.format(page))
        # 1.确定爬取的url路径,headers参数
        # global data_title, video_data
        base_url = 'https://v.6.cn/minivideo/getMiniVideoList.php'
        headers = {
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'}
        # 多页视频一起拉取,这个值在网页的 F12中的 payload 查找
        params = {
            'act':'recommend',
            'page': str(page),
            'pagesize':'30'
        }
        # 2.发送请求, --- requests 模拟浏览器发送请求,获取响应数据
        # 将页数参数值在params=params表示出来。
        response = requests.get(base_url, headers=headers,params=params)
        data = response.text
        # print(data)

        # 3.解析数据, --- json模块, 把json字符串转换成python可交互的数据类型
        # 将json数据转换为字典
        dict_data = json.loads(data)  # (字典)
        # print(dict_data)

        # 解析数据,将数据以列表格式提取出来
        data_list = dict_data['content']['list']  # (列表)
        # print(data_list)

        # 遍历列表下的字典
        for data_dict in data_list:
            # print(data_dict)
            # 提取出来关键字,分别标题和mp4链接地址
            # data_title = data_dict['title']
            # 上面提取出来的标题不是以.mp4结尾的,需要修改为 .mp4结尾的文件 ,如下:
            video_title = data_dict['title']
            # video_title.replace('/','-')  表示遇到名称里面包含/的特殊字符 替换成 '-'
            video_title01 = video_title.replace('/','-') + '.mp4'
            video_url = data_dict['playurl']
            # print(video_title, video_url)
            print('正在下载:', video_title01)

            # 使用视频链接获取视频数据:
            # 通过requests.get 方法,把视频url地址传递进去,并且少不了请求头参数headers
            # 模拟浏览器,帮助我们去发送视频链接的url
            # 使用video_data 去接收,自定义命名.
            # 通过发送请求会返回一个响应对象,从响应对象中提取数据,因为视频是个二进制数据,所以需要通过.content 把二进制数据反馈出来
            video_data = requests.get(video_url, headers=headers).content

            # 4.保存数据, --- 保存到目标文件夹中
            # 目标文件夹需要新建,在项目中新建一个 video 文件夹,将爬取的视频保存到 video 文件夹中
            # 需要知道 video01 文件夹在哪个位置
            # 通过 with open 将文件夹目录和标题保存到文件夹中  video\\ 双斜杠表示相对路径 文件名称以 data_title 命名
            # 视频数据是二进制数据,所以使用 wb 的方式进行写入  as 别名为 f
            # 通过 f.write 将视频数据传递进去
            # with open('video01\\' + video_title01, 'wb') as f:
            with open(video_title01, 'wb') as f:
                f.write(video_data)
                print('下载完成。。。\n')


if __name__ == '__main__':
    video_spider()


右键运行,结果如下:


在这里插入图片描述
本地目录截图如下:
在这里插入图片描述

详细视频链接地址

爬取网页详细地址

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值