python爬音频文件

最近在听书,但是每个章节都需要重新点开感觉很麻烦

于是找了个python的脚本把音频下载 于是省去了这个麻烦

听书的网站:

 

每一个章节的页面:

 

几段代码搞定

import re
import requests

def getsave(urls,filename):
    result=requests.get(urls)
    mp4_url=re.findall(r'audio controls="controls".*?src="(.*?)"',result.text,re.S)[0]
    video=requests.get(mp4_url)       
    filepath=r'D:\\%s.m4a'%filename
    with open(filepath, 'wb') as f:
        f.write(video.content)
        f.close()

for i in range(161,234):
    getsave('http://www.audio69.com/book/801/%s.html'% i,i )

  

转载于:https://www.cnblogs.com/curl007/p/10601311.html

### Python虫与音频处理结合的课程设计项目 在实际应用中,Python虫不仅可以用于网页数据采集,还可以与其他领域相结合完成更复杂的功能。例如,在音频处理方面,可以通过虫获取大量音频文件或元数据,并利用音频处理库对其进行分析、转换或其他操作。 以下是几个可能的课程设计项目的示例: --- #### 1. **音乐平台歌词取与情感分析** - 使用Python虫从在线音乐平台上抓取歌曲及其对应的歌词。 - 对歌词进行自然语言处理(NLP),提取关键词并分析其中的情感倾向。 - 可视化展示不同歌手或专辑中的情绪分布情况。 #### 技术栈 - 虫工具:`requests` 和 `BeautifulSoup` 或 Selenium[^4]。 - 数据清洗与预处理:Pandas[^1]。 - NLP 库:NLTK 或 TextBlob。 - 可视化:Matplotlib 或 Seaborn。 ```python import requests from bs4 import BeautifulSoup url = "https://example-music-platform.com/lyrics" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') lyrics = [] for song in soup.find_all('div', class_='song'): title = song.find('h2').text.strip() lyric_text = song.find('p').text.strip() lyrics.append((title, lyric_text)) print(lyrics[:5]) # 输出前五首歌的歌词 ``` --- #### 2. **音频分类模型训练的数据集构建** - 利用虫从公开数据库(如 FreeSound.org)下载特定类型的音频片段。 - 将这些音频按类别整理成结构化的数据集,供后续机器学习模型使用。 - 开发简单的音频特征提取脚本,计算梅尔频率倒谱系数 (MFCC) 等指标。 #### 技术栈 - 网络请求:`requests` 或 Scrapy。 - 文件存储管理:os 和 shutil。 - 音频处理:Librosa[^3]。 ```python import os import librosa import soundfile as sf audio_url = "http://freesound.example/audio.mp3" output_dir = "./audio_dataset/" if not os.path.exists(output_dir): os.makedirs(output_dir) def download_audio(url, filename): r = requests.get(url, stream=True) with open(os.path.join(output_dir, filename), 'wb') as f: for chunk in r.iter_content(chunk_size=1024): if chunk: f.write(chunk) download_audio(audio_url, "sample_audio.wav") y, sr = librosa.load("./audio_dataset/sample_audio.wav", sr=None) mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13) print(mfccs.shape) # 打印 MFCC 的维度 ``` --- #### 3. **语音转文字后的文本挖掘** - 编写虫程序收集新闻广播节目或播客的内容链接。 - 下载音频并通过 Google Speech-to-Text API 或其他开源工具将其转化为文本形式。 - 进一步对转化后的文本执行主题建模或趋势预测。 #### 技术栈 - 虫框架:Scrapy。 - 音频转文字:Google Cloud Speech-to-Text 或 PyDub + Whisper。 - 主题建模:Gensim LDA。 ```python from pydub import AudioSegment from pydub.silence import split_on_silence import speech_recognition as sr recognizer = sr.Recognizer() def transcribe_audio(file_path): with sr.AudioFile(file_path) as source: audio_data = recognizer.record(source) text = recognizer.recognize_google(audio_data, language="en-US") return text result = transcribe_audio("path_to_your_audio_file.wav") print(result) ``` --- #### 4. **基于音频标签的推荐系统原型开发** - 收集带有标签的音频资源,比如乐器演奏录音或者环境声音样本。 - 构造一个小型推荐引擎,根据用户的偏好返回相似的声音素材列表。 - 结合协同过滤算法实现个性化推荐功能。 #### 技术栈 - 数据源获取:Selenium 自动化浏览器交互。 - 推荐算法:Surprise Library。 - 用户界面:Flask Web App。 ```python from surprise import Dataset, Reader, KNNWithMeans reader = Reader(rating_scale=(1, 5)) data = Dataset.load_from_df(df[['userID', 'itemID', 'rating']], reader) algo = KNNWithMeans(k=50, sim_options={'name': 'pearson_baseline', 'user_based': False}) trainset = data.build_full_trainset() algo.fit(trainset) uid = str(user_id) # 假设这是目标用户 ID iid = str(item_id) # 假设这是某个物品 ID prediction = algo.predict(uid, iid).est print(f"Predicted rating: {prediction}") ``` --- ### 注意事项 在实施上述任何一种方案之前,请务必确认所涉及的目标站点允许自动化访问行为,并遵循当地法律及道德准则。此外,对于某些高难度验证机制下的页面内容读取任务,则可考虑引入 OCR 图像解析手段加以辅助解决[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值