如何使用Python收集视频制作动态壁纸?2022最新学习资料与安装教程
[id_[id_1058747530]447472591]

这样的不过份吧
阅读本文你需要准备
1、环境
Pythonpycharm
没有或者不会安装可以加这个群 279199867 免费领取
我给大家准备了一些东西,这些东西是 2022 年最新的 Python 学习资料,并且都在群里,大家可以获取这些资料。
没有的QQ的话可以添加微信 Python10010 领取
2、模块使用
requests
需要手动安装 requests 。可以通过 win + R 输入 cmd ,然后在 cmd 中输入安装命令 pip install 模块名 。如果觉得安装速度比较慢,还可以切换国内镜像源 。
rejson
这两个模块是内置的,无需进行安装。只要 Python 环境安装完毕,它们就可以使用了。
3、关于模块安装失败
如何安装python第三方模块:
在 Windows 系统中,按下 Win 键和 R 键,输入“cmd”并点击确定。然后在命令提示符窗口中输入安装命令“pip install 模块名”(例如“pip install requests”),最后按下回车键。
在 pycharm 里点击 Terminal(终端),然后输入安装命令。
安装失败原因:
清华:https:pypi.tuna.tsinghua.edu.cn 提供简单版本的服务。阿里云:https:阿里云的镜像站点为 mirrors.aliyun.com,在该站点的 pypi 目录下的 simple 路径中可以找到相关内容。中国科技大学 https:pypi.mirrors.ustc.edu.cn 提供简单的服务。华中理工大学:https://pypi.hustunique.com/山东理工大学:https://pypi.sdutlinux.org/豆瓣:https://pypi.douban.com/simpl
例如:pip3 install -i 模块名
4、配置pycharm里面的python解释器
选择文件,接着进入设置,然后找到项目,最后找到 python 解释器
点击齿轮, 选择add
添加python安装路径
5、Python想要兼职接外包应该学习什么?
外包指的是别人花钱让你帮忙写程序,依据甲方的需求进行定制化开发程序软件,以此获得一定的报酬。
目前关于爬虫+数据分析外包相对而言会多一些。
比如:
这些是普遍存在的外包需求
外包的收费情况依据外包的需求以及难易程度而定,并且是不一样的,是按照分布来进行计算的。
爬虫和数据分析外包 一般情况写外包的周期相对而言会比较多短
网站开发的外包工作,其难度和耗时相对来说会更大一些。例如开发后台数据管理系统,或者某公司的企业官网,又或者是学生的毕设等。不过,其价格相对而言都是比较高的,通常网站开发的价格是上千的。
6、Python找工作就业方向以及薪资待遇情况
Python找工作方向主要是
以上数据来源于科大招聘网站
常用爬虫通用模板
采集数据内容, 要知道我们想要内容是来自哪里
I. F12打开打开发者工具
II. 刷新网页 让数据重新加载一遍
III. 这个网站是一个m3u8视频内容
正常情况, 一个视频完整的内容
m3u8 视频内容会将整个完整的视频内容分割成许多小视频片段,一个 ts 文件可能仅有几秒钟的时间。
所以我们得去找一个文件内容 包含我们所有ts文件内容
最好的搜索方式, 是根据ts文件url去搜索m3u8文件
请求获取网页源代码,就能得到 m3u8 文件。所有视频片段由此得到,然后合成为一个整体的视频内容。
发送请求, 对于视频播放详情页url地址发送请求
获取数据, 获取网页源代码
解析数据, 提取我们想要数据内容
发送请求, 对于m3u8文件url发送请求
获取数据, 获取服务器返回response响应数据
解析数据, 提取所有ts文件内容
保存数据, 保存视频内容到本地
多个视频采集
多页数据采集
根据关键词视频下载
根据关键词视频下载
代码部分
import timeimport requests 数据请求模块导入了 re ,这是正则表达式模块。还导入了 json 以及 pprint 。对于从 3 到 28 的每一个 page :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': 'www.acfun.cn/u/29946310','user-agent': Safari 版本是 537.36。}使用 requests 库发送一个 GET 请求,请求的链接为 link,请求参数为 data,请求头为 headers,将返回的响应赋值给 responsepprint 对 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://www.acfun.cn/v/ac{ac_id}'headers = {'referer': f'www.acfun.cn/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'}通过 requests 库发送一个 GET 请求,请求的 URL 为指定的 url,请求头为指定的 headers,获取到的响应赋值给 response 变量。title = re.findall('AcFun 弹幕视频网,认真就会输啦 \(?ω?\)ノ - \(゜ - ゜\)つロ ', response.text)[0]html_data = re.findall(window.videoInfo 等于某个值;, response.text)[0]使用 json.loads 函数将 html_data 转换为 json 数据并赋值给 json_data 。m3u8_url 等于将 json_data 中的元素进行解析后转换为 JSON 对象,然后取其中的某个元素进行解析并转换为 JSON 对象,最后获取该 JSON 对象中的某个值。'currentVideoInfo']['ksPlayJson'])['adaptationSet'][0]['representation'][0]['backupUrl'][0]m3u8_data 等于 requests 发送请求获取的内容,请求的 URL 是 m3u8_url,请求的头部信息是 headers,获取到的内容以文本形式呈现。m3u8_data = re.sub('#E.*', '', m3u8_data).split()print(title)print(m3u8_url)
兄弟们快去试试吧!