Python实现批量下载音效素材详解
作者:嗨学编程 发布时间:2021-09-19 02:08:27
序言
作为当代新青年,应该多少会点短视频制作吧?
哈哈,那当代自媒体创作者好了~
制作视频的时候,多少需要一些搞怪的声音?或者奇怪的声音?音乐等等~
一个个下载多慢,我们今天就用python实现批量下载~
环境/模块/目标
1、目标
2、开发环境
兄弟们,刚学Python的话,不要安装一些其它的软件,就装这两个就可以了~
Python 环境
Pycharm 编辑器
3、模块
本次使用的模块主要是这两个
requests # 数据请求模块
re # 正则表达式模块
流程讲解
这次我详细写流程,小白都能看懂的那种,看完大家记得三连,给我一点创作的动力吧 ,嘿嘿~
首先我们打开网址后右键选择检查
选择network ,刷新页面往下滑,会出现一个 page-4 和 page-5 的页面。
这两个页面很多数据是直接在这里有的,我们随便找一个点击播放,然后点击media ,在headers里面会有一个音频文件,就是我标注的下载地址。
可以直接播放也可以直接下载
那想获得这个这个地址怎么搞呢?
我们直接复制这串数字,比如32716 ,然后点击左上角的这个搜索框,搜索一下。
搜索之后我们可以看到page-5这里就有音频的声音链接地址。
音频标题也在这里可以找到
然后我们点击headers,直接对于这个url地址发送请求。
首先导入requests模块
import requests
url就是刚刚的链接
url = 'https://手动替换一下/search/word-/page-5'
然后我们加一个headers进行伪装
这里直接复制 headers 下面的 user-agent 里面的内容就好了
记得加上引号
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
然后发送请求,打印一下看看结果
response = requests.get(url=url, headers=headers)
print(response.text)
打印出来的内容太多了,我们直接在上面搜索MP3,精准定位,它的标题就在mp3文件下面那个链接那里。
然后我们把它复制过来,用正则去匹配中间这段内容,中间的url用(.*?)代替。
首先导入re模块
import re
刚刚那段内容复制过来,.*?用括号括起来。
从 response.text 里面去匹配,匹配到的内容用play_url_list这个变量接收。
play_url_list = re.findall('<div class="ui360 ui360-vis"><a href="(.*?)"></a></div>', response.text)
然后打印一下看看有没有匹配到内容
print(play_url_list)
可以看到直接匹配到了mp3文件,它包含在一个列表里面。
那我们还需要它的标题名字,同样的复制过来。
还是一样的操作,url和名字都替换为 .*?
从 response.text 里面去匹配,匹配到的内容用name_list这个变量接收。
name_list = re.findall('<a class="h6 text-white font-weight-bold" target="_blank" href=".*?" title="(.*?)">.*?</a>', response.text)
打印一下
print(name_list)
可以看到名字这些数据,都已经获取到了。
遍历一下,把获取到的数据打包到一起,然后一个个提取出来,获取它的一个二进制数据内容,用mp3_content 这个变量接收一下
for play_url, name in zip(play_url_list, name_list):
mp3_content = requests.get(url=play_url, headers=headers).content
然后直接保存,with open 给它一个文件夹的名字,加上名字,加上 .mp3的后缀,保存方式 mode = wb , 用 f.write 这个变量接收一下 mp3_content
with open('音效\\' + name + '.mp3', mode='wb') as f:
f.write(mp3_content)
这里咱们没有写自动创建文件夹, 所以需要手动创建一下文件夹,然后把你命名的名字写入进来。
然后我们打印一下,看看结果。
print(name)
相关的数据内容就保存在你创建的文件夹了
注:所有的url大家自己手动替换一下,我这里把它们删了,不然会误杀
全部代码
import requests
import re
url = 'https://这里大家自己替换一下/search/word-/page-5'
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
response = requests.get(url=url, headers=headers)
# print(response.text)
play_url_list = re.findall('<div class="ui360 ui360-vis"><a href="(.*?)"></a></div>', response.text)
name_list = re.findall('<a class="h6 text-white font-weight-bold" target="_blank" href=".*?" title="(.*?)">.*?</a>', response.text)
print(play_url_list)
print(name_list)
for play_url, name in zip(play_url_list, name_list):
mp3_content = requests.get(url=play_url, headers=headers).content
with open('音效\\' + name + '.mp3', mode='wb') as f:
f.write(mp3_content)
print(name)
来源:https://blog.csdn.net/fei347795790/article/details/123094211
猜你喜欢
- 1、代码如下:import numpy as npfrom keras.models import Sequentialfrom keras
- 前言Supervisor(‘http://supervisord.org/’)是用Python开发的
- 本文实例讲述了python计算牛顿迭代多项式的方法。分享给大家供大家参考。具体实现方法如下:''' p = eval
- tempfile.TemporaryFile如何你的应用程序需要一个临时文件来存储数据,但不需要同其他程序共享,那么用TemporaryFi
- pynput这个库让你可以控制和监控输入设备。对于每一种输入设备,它包含一个子包来控制和监控该种输入设备:pynput.mouse:包含控制
- 运行效果:完整代码from tkinter import *import tkinter.messageboximport base64fr
- 我曾以为,写脚本是很难的,直到我遇到了Python前言随着国内版权意识的跟进,很多影视音乐资源开始收费,而且度盘又经常随意封杀各种资源,所以
- 用户习惯大家都经常在提,习惯源于何出?回答可以是软件的用户习惯源于其不断使用过程中的印象积累。如果是这个软件刚诞生的时候呢?于是就得参考同类
- 本文实例讲述了python 队列基本定义与使用方法。分享给大家供大家参考,具体如下:队列的特征是:先进先出应用场景:消息通信、多进程间的协同
- Microsoft SQL Server 2008通过与Microsoft Office的深度集成,为所有人提供了可用的商业智能,以合适的价
- 考虑以下python程序:#!/usr/bin/env pythonimport syssys.stdout.write("std
- 今天,本文向大家推荐20佳国外的脚本下载网站。1- Hot Scripts2- Code Canyon3- User Scripts4- S
- mysqli对prepare的支持对于大访问量的网站是很有好处的,它极大地降低了系统开销,而且保证了创建查询的稳定性和安全性。prepare
- 长期以来一直以为iframe跟div一样都是块级元素,直到今天在一个群中看到一位朋友问到iframe怎么居中的时候,测试了下发现原来我一直对
- 代码import imutilsimport cv2image = cv2.imread('') # translate t
- 本文实例讲述了python实现web方式logview的方法。分享给大家供大家参考。具体如下:这里用Python实现web方式查看日志的一个
- mssql的每个varchar、text字段都被自动插入一段js代码,即使删除这段代码,如果没有从源头上解决,几分钟后,js代码就又会自动插
- python join 和 split方法简单的说是:join用来连接字符串,split恰好相反,拆分字符串的。.join()join将 容
- 深度学习这个词指的是训练神经网络。深代表着非常大的神经网络。那么神经网络到底是什么呢?看了这篇文章后你就会有很直观的认识了。我们从一个房价预
- SQL Server数据库连接中常见的错误分析:一."SQL Server 不存在或访问被拒绝"这个是最复杂的,错误发生