首先澄清一下,我用Python收集这些视频,绝不是想做别的什么,真的只是用来做动态壁纸,大家不要误会!我不是那样的人~

这样的不过份吧

(这个动图看不看的到就看有没有缘分了 )

阅读本文你需要准备

1、环境 (如果不会安装的点这个https://jq.qq.com/?_wv=1027&k=UEbz4NcQ

Python
pycharm

2、模块使用 (https://jq.qq.com/?_wv=1027&k=UEbz4NcQ

requests  

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

re
json

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

3、关于模块安装失败 (https://jq.qq.com/?_wv=1027&k=UEbz4NcQ

如何安装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解释器 (https://jq.qq.com/?_wv=1027&k=UEbz4NcQ

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

5、Python想要兼职接外包应该学习什么? (https://jq.qq.com/?_wv=1027&k=UEbz4NcQ

外包是什么? 是指别人花钱请你帮他写程序, 根据甲方的需求定制化开发程序软件, 从而获得一定报酬。

目前关于爬虫+数据分析外包相对而言会多一些。

比如:

  • 学生的毕设 / 课设 / 作业、个人商家需要的一些数据采集、某人公司需要的某些数据等等;
  • 采集疫情数据做可视化分析 / 采集房源数据做可视化分析 / 采集招聘网站做可视化分析 / 采集电商平台做可视化分析 等等

这些是普遍存在的外包需求

根据外包的需求以及难易程序 外包的收费情况也是不一样的, 按照分布计算。

简单的外包: 100-300左右 耗时: 30-60分钟左右
中等的外包: 500+ 左右 耗时: 1-2个小时左右
难度稍大外包: 价格 1000+ 不封顶等 耗时: 3-5天不等

爬虫和数据分析外包 一般情况写外包的周期相对而言会比较多短

网站开发的外包难度以及耗时相当而言会大一些,比如开发后台数据管理系统 / 某公司企业官网 / 或者学生毕设等等,但是价格相对而言都是比较高的,网站开发价格普通是上千。

6、Python找工作就业方向以及薪资待遇情况 (https://jq.qq.com/?_wv=1027&k=UEbz4NcQ

Python找工作方向主要是

开发工程师 <网站开发/全栈开发>

  • 北京平均薪资23K
  • 应届生15K
  • 1-3年 16.9K
  • 3-5年22.9K

爬虫工程师

  • 北京平均薪资22.5K
  • 应届生16.7K
  • 1-3年 18.1K
  • 3-5年 24K

数据分析师

  • 北京平均薪资25.3K
  • 应届生13.5K
  • 1-3年 19.4K
  • 3-5年26.2K

(以上数据来源于科大招聘网站)

常用pa虫通用模板

一. 数据来源分析

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

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

正常情况, 一个视频完整的内容

m3u8视频内容 会整个完整视频内容,分割成很多个小视频片段 <ts文件> 一个ts文件 可能只有几秒钟的时间

所以我们得去找一个文件内容 <m3u8文件> 包含我们所有ts文件内容 <所有视频片段>

最好的搜索方式, 是根据ts文件url去搜索m3u8文件

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

二. 代码实现步骤: <基本四大步骤> (https://jq.qq.com/?_wv=1027&k=UEbz4NcQ

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

代码部分

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('<title >(.*?) - AcFun弹幕视频网 - 认真你就输啦 \(\?ω\?\)ノ- \( ゜- ゜\)つロ</title>', 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)

不可抗拒的原因所以地址我删了,评论区置顶,也有对应的视频教程,可以下方扫码。

兄弟们快去试试吧!

发布于 2022-06-15 20:30

Python收集这些视频只是单纯的想做做壁纸,大家不要误会的更多相关文章

  1. python下载youtube视频

    谷歌开源了一个新的数据集,BoundingBox,(网址在这里)这个数据集是经过人工标注的视频数据集,自然想将它尽快地运用在实际之中,那么首先需要将其下载下来:可以看到网址上给出的是csv文件,该文件 ...

  2. 用Python实现检测视频真伪?

    译者注:本文以一段自打24小时耳光的视频为例子,介绍了如何利用均值哈希算法来检查重复视频帧.以下是译文. 有人在网上上传了一段视频,他打了自己24个小时的耳光.他真的这么做了吗?看都不用看,肯定没有! ...

  3. Python抓取视频内容

    Python抓取视频内容 Python 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.Python语法简洁而清晰,具 ...

  4. Python爬取视频指南

    摘自:https://www.jianshu.com/p/9ca86becd86d 前言 前两天尔羽说让我爬一下菜鸟窝的教程视频,这次就跟大家来说说Python爬取视频的经验 正文 https://w ...

  5. Python: 收集所有命名参数

    有时候把Python函数调用的命名参数都收集到一个dict中可以更方便地做参数检查,或者直接由参数创建attribute等.更简单的理解就是def foo(*args, **kwargs): pass ...

  6. python sqlite3 入门 (视频讲座)

    python sqlite3 入门 (视频讲座) an SQLite mini-series! - Simple Databases with Python 播放列表: YouTube https:/ ...

  7. Python大礼包-安装视频+pycharm编译器|Mac版本+64位+32位版本pycharm安装包+python安装|内附网盘链接带提取码

    pycharm安装包+环境安装打包带走,附带视频教程与pdf教程. (下载链接在本文最下方) 多的不说,直接上图: Python大礼包-安装视频+pycharm编译器详细文件: 点击此处进入下载地址 ...

  8. 解决Python内CvCapture视频文件格式不支持问题

    解决Python内CvCapture视频文件格式不支持问题 在读取视频文件调用默认的摄像头cv.VideoCapture(0)会出现下面的视频格式问题 CvCapture_MSMF::initStre ...

  9. Python抖音视频去水印,并打包成exe可执行文件

    前言 抖音里面的视频保存之后,会发现全都带有水印,所以如何解决视频去除水印就很有必要,所以教程来了,本次教程不仅会教大家如何去除视频里的水印,并且教大家将程序制作成exe可执行文件,可以发给你的好友使 ...

随机推荐

  1. 【直播回顾】OpenHarmony知识赋能第四期第二课——GPIO驱动开发

    3月17日晚上19点,​知识赋能第四期直播的第二节课<OpenHarmony标准系统HDF框架之GPIO驱动开发>​,在OpenHarmony开发者成长计划社群内成功举办. 本期课程,由​ ...

  2. Hyperledger Fabric无排序组织以Raft共识算法启动多个Orderer服务、多组织共同运行维护Orderer服务

    前言 在Hyperledger Fabric无系统通道启动及通道的创建和删除中,我们已经完成了以无系统通道的方式启动 Hyperledger Fabric 网络,并将链码安装到指定通道.但目前为止,实 ...

  3. python中的嵌套

    嵌套:将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套.既可以在列表中嵌套字典,也可以在字典中嵌套列表,甚至在字典中嵌套字典. 一.列表中嵌套字典 1)一般创建方式: student_ ...

  4. AndroidStudio中的模块依赖引入后用不了

    ------------恢复内容开始------------ 在Android开发中,com.android.tools.build:gradle 3.0 以下版本依赖在gradle 中的声明写法: ...

  5. input 标签的 pattern 属性

    定义和用法 pattern 属性规定用于验证输入字段的模式. 模式指的是正则表达式. 注释:pattern 属性适用于以下 <input>类型:text, search, url, tel ...

  6. 一次不规范HTTP请求引发的nginx响应400问题分析与解决

    背景 最近分析数据偶然发现nginx log中有一批用户所有的HTTP POST log上报请求均返回400,没有任何200成功记录,由于只占整体请求的不到0.5%,所以之前也一直没有触发监控报警,而 ...

  7. 团队Beta5

    队名:观光队 链接 组长博客 作业博客 组员实践情况 王耀鑫 **过去两天完成了哪些任务 ** 文字/口头描述 学习 展示GitHub当日代码/文档签入记录 无 接下来的计划 无 **还剩下哪些任务 ...

  8. 请收藏,Linux 运维必备的 40 个命令总结,收好了~

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 1.删除0字节文件 find -type f -size ...

  9. DOM操作标签,事件绑定,jQuery框架

    DOM操作标签 ''' 在起变量名的时候 如果该变量指向的是一个标签 那么建议使用 xxxEle eg:aEle\pEle\divEle\spanEle ''' 基本使用 动态创建一个标签 var 变 ...

  10. Linux中文件/文件系统的压缩、打包和备份总结(基于rhel7)

    文件/文件系统的压缩.打包 Linux有哪些压缩工具可供选择 按压缩比:xz>bzip2>gzip,按压缩时长:gzip>bzip2>xz,另外还有zip可以选择. gzip只 ...