之前分享过回答几个很多人在问的问题,以及苏生不惑提供的服务 ,有人加我微信帮忙批量下载公众号文章里的音频,正好之前下载过一键批量下载微信公众号文章内容/图片/封面/视频/音频,支持导出html和pdf格式,包含阅读数/点赞数/在看数/留言数 ,于是研究了下,很快就搞定了,顺便用python打包了个工具
以这篇文章为例 ,作者整理了上百篇文章:
单篇文章的音频用idm就能下载:
批量下载需要先抓取所有文章链接再下载,代码如下:
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 f5:
f5.write(audio_data.content)
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))
for mp_url in urls:
res = requests.get(html.unescape(mp_url),proxies={'http': None,'https': None},verify=False, headers=headers)
content = res.text.replace('data-src', 'src')
title = re.search(r'var msg_title = \'(.*)\'', content).group(1)
ct = re.search(r'var ct = "(.*)";', content).group(1)
date = time.strftime('%Y-%m-%d', time.localtime(int(ct)))
audio(res,headers,date,title)
try:
with open(date+'_'+title+'.html', 'w', encoding='utf-8') as f:
f.write(content)
except Exception as error:
with open(str(randint(1,10))+'.html', 'w', encoding='utf-8') as f:
f.write(content)
下载效果如图,顺便把文章内容也下载了:
除了这种整理的文章还有话题下收录的文章也可以下载,如果有人需要下次再打包个工具。
另外作者的音频在喜马拉雅也有同步更新https://www.ximalaya.com/album/258244 ,使用这个Windows软件(公众号后台回复喜马拉雅
获取下载地址)输入专辑id就能下载:
如果用的mac系统可以安装这个油猴脚本https://greasyfork.org/zh-CN/scripts/435495 ,油猴脚本之前分享过很多次了油猴脚本神器加1
如果还想批量下载视频参考之前文章一键批量下载微信公众号文章内容/图片/封面/视频/音频,支持导出html和pdf格式,包含阅读数/点赞数/在看数/留言数 ,还有文章数据包含文章日期,文章标题,文章链接,文章简介,文章作者,文章封面图,是否原创,阅读数,在看数,点赞数和留言数,比如抓取过深圳卫健委的公众号数据听说公众号深圳卫健委被网友投诉尺度大,我抓取了所有文章标题和阅读数分析了下,
留言内容可以下载抓取了公众号历史文章的留言 ,如果你有需要下载的公众号或抓取数据可以微信联系我。
再次推荐下我的博客https://blog-susheng.vercel.app ,存放了部分公众号文章10 分钟带你免费搭建一个属于自己的博客 ,方便在线查看:
以及之前分享过的网站,Windows软件,app,chrome扩展,油猴脚本系列等,周末我又整理了下: