Python收集视频,做自己喜欢的壁纸,不要误会我的用意

没啥事情干,就用Python收集一些视频,来做壁纸吧

阅读本文你需要准备

1、环境

Python
pycharm

2、模块使用

requests  

requests 需要手动安装一下 ,win + R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速度比较慢, 你可以切换国内镜像源)

re
json

这两个是内置模块,不需要安装,Python环境安装好就可以了。

3、关于模块安装失败

如何安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests)回车
  2. 在pycharm中点击Terminal(终端) 输入安装命令

安装失败原因:

  • 失败一: pip 不是内部命令

解决方法: 设置环境变量

  • 失败二: 出现大量报红 (read time out)

解决方法: 因为是网络链接超时, 需要切换镜像源。

清华:https://pypi.tuna.tsinghua.edu.cn/simple
 阿里云:https://mirrors.aliyun.com/pypi/simple/
 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
 华中理工大学:https://pypi.hustunique.com/
 山东理工大学:https://pypi.sdutlinux.org/
 豆瓣:https://pypi.douban.com/simple/

例如:pip3 install -i https://pypi.doubanio.com/simple/ 模块名

  • 失败三: cmd里面显示已经安装过了, 或者安装成功了, 但是在pycharm里面还是无法导入

解决方法: 可能安装了多个python版本 (anaconda 或者 python 安装一个即可) 卸载一个就好。
或者你pycharm里面python解释器没有设置好

4、配置pycharm里面的python解释器

选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)
点击齿轮, 选择add
添加python安装路径

常用p虫通用模板

一. 数据来源分析

采集数据内容, 要知道我们想要内容是来自哪里
<开发者工具进行抓包分析>

I. F12打开打开发者工具
II. 刷新网页 让数据重新加载一遍
III. 这个网站是一个m3u8视频内容

正常情况, 一个视频完整的内容
m3u8视频内容 会整个完整视频内容,分割成很多个小视频片段 一个ts文件 可能只有几秒钟的时间
所以我们得去找一个文件内容 包含我们所有ts文件内容 <所有视频片段>
最好的搜索方式, 是根据ts文件url去搜索m3u8文件

请求获取网页源代码 就可以得到m3u8文件 >>> 所有视频片段就得到了 >>> 合成为一个整体的视频内容

二. 代码实现步骤: <基本四大步骤>

  1. 发送请求, 对于视频播放详情页url地址发送请求
  2. 获取数据, 获取网页源代码 <获取服务器返回response响应数据>
  3. 解析数据, 提取我们想要数据内容
  4. 发送请求, 对于m3u8文件url发送请求
  5. 获取数据, 获取服务器返回response响应数据
  6. 解析数据, 提取所有ts文件内容 <视频片段url>
  7. 保存数据, 保存视频内容到本地
  8. 多个视频采集
  9. 多页数据采集
  10. 根据关键词视频下载
  11. 根据关键词视频下载

请添加图片描述

代码部分

python学习交流Q群:770699889 ###
import time
import requests  # 数据请求模块
import re  # 正则表达式模块
import json
import pprint

for page in range(3, 29):
    print(f'正在采集第{page}页的数据')
    time.sleep(1)
    link = 'https://www.acfun.cn/u/29946310'
    data = {
        'quickViewId': 'ac-space-video-list',
        'reqID': page+1,
        'ajaxpipe': '1',
        'type': 'video',
        'order': 'newest',
        'page': page,
        'pageSize': '20',
        't': '1653659024877',
    }
    headers = {
        'referer': 'https://***/u/29946310',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36'
    }
    response = requests.get(url=link, params=data, headers=headers)
    # pprint.pprint(response.text)
    ac_id_list = re.findall('atomid.*?:.*?"(\d+).*?"', response.text)
    print(ac_id_list)


    for ac_id in ac_id_list:
        url = f'https://***/v/ac{ac_id}'
        headers = {
            'referer': f'https://***/u/{ac_id}',
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36'
        }
        response = requests.get(url=url, headers=headers)
        title = re.findall('(.*?) - AcFun弹幕视频网 - 认真你就输啦 \(\?ω\?\)ノ- \( ゜- ゜\)つロ', response.text)[0]
        html_data = re.findall('window.pageInfo = window.videoInfo = (.*?);', response.text)[0]
        json_data = json.loads(html_data)
        m3u8_url = json.loads(json_data['currentVideoInfo']['ksPlayJson'])['adaptationSet'][0]['representation'][0]['backupUrl'][0]
        m3u8_data = requests.get(url=m3u8_url, headers=headers).text
        m3u8_data = re.sub('#E.*', '', m3u8_data).split()
        print(title)
        print(m3u8_url)

Python收集视频,做自己喜欢的壁纸,不要误会我的用意_第1张图片

好啦,今天的分享到这里就结束了 ~

如果需要视频学习的可以在b站搜索 :Python小圆 / ka-爆浆麻薯团子

对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦
觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/

Python收集视频,做自己喜欢的壁纸,不要误会我的用意_第2张图片

你可能感兴趣的:(python,python,音视频,pycharm)