前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AI网络爬虫:批量下载微信公众号文章中的音频

AI网络爬虫:批量下载微信公众号文章中的音频

作者头像
AIGC部落
发布2024-06-24 19:30:32
900
发布2024-06-24 19:30:32
举报
文章被收录于专栏:Dance with GenAIDance with GenAI

任务:微信公众号文章中多个音频文件批量下载

以这个微信公众号文章示例:

https://mp.weixin.qq.com/s/Xcrrsq2AUBFlKWabhQjNag

按下F12键,点击网络——媒体,就可以看到音频文件的地址:

查看几个音频文件地址的规律:

https://res.wx.qq.com/voice/getvoice?mediaid=MzI2ODc4NDc2NF8yMjQ3NTMzNjg1

https://res.wx.qq.com/voice/getvoice?mediaid=MzI2ODc4NDc2NF8yMjQ3NTMzNjg3

https://res.wx.qq.com/voice/getvoice?mediaid=MzI2ODc4NDc2NF8yMjQ3NTMzNjkx

只有最后一串字符不一样,查找这串字符:

可以看到在这个标签中出现:

<mp-common-mpaudio class="js_editor_audio res_iframe js_uneditable custom_select_card" src="/cgi-bin/readtemplate?t=tmpl/audio_tmpl&amp;name=%E4%B8%87%E5%8E%86%E5%8D%81%E4%BA%94%E5%B9%B4%20%E5%85%AB%EF%BC%8836-40%EF%BC%89&amp;play_length=1%E5%B0%8F%E6%97%B644%E5%88%86%E9%92%9F" isaac2="1" low_size="11724.91" source_size="11776" high_size="49159.23" name="万历十五年&nbsp;八(36-40)" play_length="6292000" author="青青百草苑" data-topic_id="" data-topic_name="" data-pluginname="insertaudio" data-trans_state="1" data-verify_state="3" voice_encode_fileid="MzI2ODc4NDc2NF8yMjQ3NTMzNjg1"></mp-common-mpaudio>

在deepseek中输入提示词:

你是一个Python编程专家,要完成一个批量下载网页中音频的Python脚本,具体步骤如下:

用户输入一个网页URL,接受URL;

解析这个URL;

定位其中所有class="js_editor_audio res_iframe js_uneditable custom_select_card" 的mp-common-mpaudio标签,提取其name属性值,去掉其中的空格,作为音频文件名;

提取其voice_encode_fileid的属性值,前面加上“https://res.wx.qq.com/voice/getvoice?mediaid=”,构成音频下载的URL;

下载音频文件,保存在E盘的weixinaudio文件夹中,音频文件格式为mp3格式;

注意:每一步都要输出信息到屏幕上

Deepseek生成的源代码:

import requests

from bs4 import BeautifulSoup

import os

# 用户输入网页URL

url = input("请输入网页URL: ")

print(f"用户输入的URL是: {url}")

# 发送请求并获取网页内容

response = requests.get(url)

print("网页请求成功,正在解析...")

# 解析网页内容

soup = BeautifulSoup(response.text, 'html.parser')

# 定位所有音频标签并提取信息

audio_tags = soup.find_all('mp-common-mpaudio', class_='js_editor_audio res_iframe js_uneditable custom_select_card')

if audio_tags:

for audio_tag in audio_tags:

name = audio_tag['name'].replace(' ', '')

voice_id = audio_tag['voice_encode_fileid']

audio_url = f"https://res.wx.qq.com/voice/getvoice?mediaid={voice_id}"

print(f"音频文件名: {name}")

print(f"音频下载URL: {audio_url}")

# 下载音频文件

print("开始下载音频文件...")

audio_response = requests.get(audio_url)

# 检查文件是否下载成功

if audio_response.status_code == 200:

# 创建文件夹(如果不存在)

if not os.path.exists('E:/weixinaudio'):

os.makedirs('E:/weixinaudio')

# 保存音频文件

with open(f'E:/weixinaudio/{name}.mp3', 'wb') as f:

f.write(audio_response.content)

print(f"音频文件已保存到 E:/weixinaudio/{name}.mp3")

else:

print("音频文件下载失败")

else:

print("未找到音频标签")

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Dance with GenAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档