利用Python中的requests+wget批量下载微信页面上的音频
我最初学习Python的时候,听过余老师的课,学到了一些不错的技巧,也激发了我学习Python的兴趣,今天我再次拿到了以前的代码,经过修改后,变成了一个可以下载微信页面音频的小工具。这个小工具的主要功能是批量下载这个页面的mp3,下载音频mp3所在的页面在程序当中:
一、采用的Python包
我主要采用了requests, re和wget这三个包来实现。
1. requests获取网页源码
2. re是正则匹配我们要找的mediaid
3. wget是把找到的音频地址下载到本地。话不多说,开始上代码:
二、下载音频源码
import requests
import re,wgetdef readurl(url):"""获取某个网页的内容,并筛选出3个mp3的ID返回mp3的ID的列表 """text = requests.get(url).textpatt = r'voice_encode_fileid="(.*?)"'filename= r'size="\d+\.\d+" name="(.*?)"'ID_list = re.findall(patt,text)file_list= re.findall(filename,text)return ID_list,file_listdef downmp3(lst):"""获取给定的某个网页下的mp3"""for p in range(len(lst[0])):path = 'https://res.wx.qq.com/voice/getvoice?mediaid='name = path + lst[0][p]wget.download(name,out=lst[1][p].replace(" ",""))
# mp3 = requests.get(name)
# #with open('hlmmp_%d.mp3'%p,'wb') as ff:
# with open(lst[1][p],replace(" ",""),'wb') as ff:
# ff.write(mp3.content)print("已完成第%d个"%p)
if __name__ == '__main__':#以下是微信网页的地址url="https://mp.weixin.qq.com/s?__biz=MzAwNDU5MDE4MQ==&mid=2456894102&idx=8&sn=60e15868a78935291502bb17113242eb&chksm=8cac059cbbdb8c8a23c3ab6906832493cc2ac3fc813adb93f0ab53040e667bafb1f9425a7457&scene=178&cur_album_id=1948871998160355331#rd"text = readurl(url)print(text)downmp3(text)print("已全部完成。")
三、改进程序的方法
在第二个函数中,我注释到了原来采用with open的方法下来载音频,而是采用wget这个现成的包,实践证明这个包非常友好,而且不需要复杂的算法就能轻松实现我们想要的功能。
readurl这个函数是获取mediaid和文件名
downmp3这个函数是下载音频文件,同时以对应的文件名保存。
经过测试发现,下载速度还是不错的,而且保留了文件名,实现了一键下载,为我们节省了大量的时间。
利用Python中的requests+wget批量下载微信页面上的音频相关推荐
- 【Python】利用Python爬虫实现网页图片批量下载
本文爬取的是豆瓣的网站,爬虫有规则,爬虫需谨慎.文章末附效果图 源码下载地址:https://github.com/Seichung/Python/blob/master/Python_Practic ...
- 利用wget批量下载http目录下文件
因为网络特殊,连不上互联网,只好自己制作一个puppet本地源.因为自己的电脑是是可以连互联网的,所以就直接将puppetlabs.repo导入进来了 rpm -Uvh http://yum.pupp ...
- WGET批量下载风云卫星数据
1. 在风云卫星官网创建账号并提交订单.之后胡获取到下载链接,本来想这种下载链接可以直接由IE或者火狐的插件 down them all进行下载的,但是由于不知道是我的浏览器的设置还是系统设置的问题, ...
- Python中使用sentinelsat包自动下载Sentinel系列数据
Python中使用sentinelsat包自动下载Sentinel系列数据 前言 普通下载 使用工具批量下载Sentinel 数据 使用SNAP批量下载 第三方软件或网站批量下载 Sentinel-1 ...
- pythonrequests发送数据_在python中使用requests 模拟浏览器发送请求数据的方法
在python中使用requests 模拟浏览器发送请求数据的方法 如下所示: import requests url='http://####' proxy={'http':'http://#### ...
- python根据url下载数据_利用Python如何实现根据URL地址下载并保存文件至对应目录...
利用Python如何实现根据URL地址下载并保存文件至对应目录 发布时间:2020-11-16 14:23:11 来源:亿速云 阅读:58 作者:Leah 这篇文章将为大家详细讲解有关利用Python ...
- python汇率转换_利用Python中的Xpath实现一个在线汇率转换器
前言 在之前的语法里面,我们记得有一个初识Python之汇率转换篇,在那个程序里面我们发现可以运用一些基础的语法写一个汇率计算,但是学到后面的小伙伴就会发现这个小程序有一定的弊端. 首先,它不可以实时 ...
- 使用Python+Chrome浏览器批量下载Ocean Color上遥感数据
目录 1.前言 2.主要思路及代码 3.结果展示 建了一个QQ群,大家可以在里边聊聊水色遥感数据下载和数据处理方面的事情:1087024529 1.前言 最近遇见一个很尴尬的事情.之前写过用IDM批量 ...
- wget批量下载文件
wget批量下载文件 参数 参数 解释 -c 断点续传 -r 递归下载,下载指定网页某一目录下(包括子目录)的所有文件 -nd 递归下载时不创建一层一层的目录,把所有的文件下载到当前目录 -np 递归 ...
- 利用python中的xlrd和xlwt操作excel
微信公众号:数据运营人 本系列为博主的读书学习笔记,如需转载请注明出处. 当提起数据处理,一般情况下我们都可以用python中的pandas完成,但是当我们发现一些不规则的excel数据,所谓不规则如 ...
最新文章
- 让计算机拥有一双眼睛,人工智能科学家已经努力了半个世纪
- 安全检测点的一些梳理——待长期整理
- IT团队之非正式沟通
- python学习-测试(文档测试 doctest、单元测试 unittest)
- 重读经典:《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》
- oss/bss/mss转自搜搜百科
- [妙味Ajax]第一课:原理和封装
- swift int转string_用Swift开发macOS程序,九、目录模块
- 大三寒假--算法复习
- 多维数组和矩阵----子数组最大累加和
- louvain算法 matlab,Community_BGLL_Matlab 复杂网络社团发现算法Louvain的 版本,简单实用,欢迎下载 272万源代码下载- www.pudn.com...
- Mac系统搭建C语言开发环境
- crm系统如何处理好客户投诉问题?
- 通过url下载文件并保存
- Android 7.1 车机 Android 系统 在线升级,将安装到下载到/data/目录下面
- python dataframe的某一列变为list_NumPy中的ndarray与Pandas的Series和DataFrame之间的区别与转换...
- 左耳听风 第四十二周
- 信息系统项目管理师10大管理47个过程域输入输出工具(项目质量管理)
- 「2019 JSConf.Hawaii - Brie.Bunge」大规模应用 TypeScript
- hud1003 max num