之前分享过文章:

听说公众号深圳卫健委被网友投诉尺度大,我抓取了所有文章标题和阅读数分析了下​mp.weixin.qq.com/s/AS4_H2dsAd2zu_vakWCHkA

一键批量下载微信公众号文章内容/图片/封面/视频/音频,支持导出html和pdf格式,包含阅读数/点赞数/在看数​mp.weixin.qq.com/s/ogxF4j5PncxIQ91PtIwU-A

最近看到一篇文章里整理了很多音频,于是想着下载到本地听:

话不多说,直接上代码,如果有人需要我可以打包个工具,输入文章地址就能下载:

url = input('请输入文章地址:')
response = requests.get(url, headers=headers)
urls = re.findall('<a target="_blank" href="(https?://mp.weixin.qq.com/s\?.*?)"',response.text)
print(len(urls))
def audio(res,headers,date,title):
    #  
    aids = re.findall(r'"voice_id":"(.*?)"',res.text)
    time.sleep(2)
    tmp = 0
    for id in aids:
        tmp +=1
        url = f'https://res.wx.qq.com/voice/getvoice?mediaid={id}'
        audio_data = requests.get(url,headers=headers)
        print('正在下载音频:'+title+'.mp3')
        with open(date+'___'+title+'___'+str(tmp)+'.mp3','wb') as f:
            f.write(audio_data.content)
for mp_url in urls:
	res = requests.get(html.unescape(mp_url),proxies={'http': None,'https': None},verify=False, headers=headers)
	title = re.search(r'var msg_title = \'(.*)\'', res.text).group(1)
	ct = re.search(r'var ct = "(.*)";', res.text).group(1)
	date = time.strftime('%Y-%m-%d', time.localtime(int(ct)))
	audio(res,headers,date,title)
sys.exit(1)

下载效果,上百个音频很快就下载完成了:

如果还想批量下载所有历史文章的音频和视频参考这个文章:

一键批量下载微信公众号文章内容/图片/封面/视频/音频,支持导出html和pdf格式,包含阅读数/点赞数/在看数​mp.weixin.qq.com/s/ogxF4j5PncxIQ91PtIwU-A

0
0