zhai男福利!Python爬取猫耳FM音频,一场酣畅淋漓的听觉盛宴!!!

本文介绍如何使用Python和相关库如requests和re在猫耳FM上抓取音频数据,包括获取音频ID、解析JSON获取下载链接,最后实现批量下载并保存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

本文知识点

 环境与库

 实现步骤

代码实现 

导入相关模块

解析网页

获取音频id

解析json数据获取音频下载链接

下载保存并命名

函数整体调用

最终效果展示


前言

猫耳FM一般被称作“M站”,平台内容以女性向为主,覆盖了有声漫、广播剧、翻唱、电台等二次元及泛二次元的声音内容,是一个专注于ACG相关内容的二次元音频社区。

今天,它将是我们的受害者○( ^皿^)っHiahiahia…

本文知识点

  • 1、函数构造与调用
  • 2、多层数据解析
  • 3、海量音频数据保存

 环境与库

  • python 3.8
  • pycharm专业版
  • requests
  • re
  • os

 实现步骤

  • 1.获取每个音频的id
  • 2.通过id拼接音频详情页地址
  • 3.请求地址获取json数据
  • 4.解析json数据获取音频地址
  • 5.保存音频并以其名称命名

代码实现 

导入相关模块

import requests
import re
import os

解析网页

def get_html(url):
    headers = {
        'Cookie': 'acw_tc=2f624a5917044582169955929e19a14ec0e690ecccc374f6f37cab9d2758df; MSESSID=4efr9ap4gadb2s08pdiq129q73; Hm_lvt_91a4e950402ecbaeb38bd149234eb7cc=1704458226; Hm_lpvt_91a4e950402ecbaeb38bd149234eb7cc=1704458285',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
    }
    response = requests.get(url, headers=headers)
    return response

获取音频id

网页右键查看网页源代码找到音频详情页地址,并使用re正则解析出其id

def get_ids(response):
    mp3_ids = re.findall('<a target="_player" href="/sound/(.*?)" title=".*?">', response.text)
    return mp3_ids

解析json数据获取音频下载链接

def get_sound(response):
    json_data = response.json()
    title = json_data['info']['sound']['soundstr']  # 标题
    sound_url = json_data['info']['sound']['soundurl']  # 音频下载链接
    return title, sound_url

下载保存并命名

def save(title, mp3_data):
    with open('mp3\\' + title + '.m4a', mode='wb') as f:
        f.write(mp3_data)
        print(title, '下载完成!')

函数整体调用


def run(url):
    response = get_html(url)
    mp3_ids = get_ids(response)
    for mp3_id in mp3_ids:
        mp3_url = 'https://www.missevan.com/sound/getsound?soundid=' + mp3_id
        response_1 = get_html(mp3_url)
        title, sound_url = get_sound(response_1)
        # title = change_title(title)
        # print(sound_url)
        mp3_data = get_html(sound_url).content
        save(title, mp3_data)

run('https://www.missevan.com/sound/m/110')

最终效果展示

什么?!当女友假装病娇对你用手铐,发现弄疼你后道歉 。好好好,今晚就梦这个!!!

好的,以下是使用Python和Jupyter Notebook爬取猫耳FM中十首音乐音频的完整代码: 首先,需要安装相关的Python库,包括requests、beautifulsoup4和urllib。 ``` !pip install requests !pip install beautifulsoup4 ``` 然后,我们可以定义一个函数来爬取猫耳FM中的音频链接。 ```python import requests from bs4 import BeautifulSoup import urllib def get_audio_links(): links = [] for page in range(1, 11): url = f'https://www.lizhi.fm/258504/{page}.html' response = requests.get(url) soup = BeautifulSoup(response.content, 'html.parser') audio = soup.find('audio') source = audio.find('source') link = source['src'] links.append(link) return links ``` 这个函数将会遍历猫耳FM的10个页面,获取每个页面的音频链接。使用requests库发送HTTP请求,然后使用beautifulsoup4库解析HTML页面。最后,我们可以找到每个页面的音频链接,并将它们添加到一个列表中。 接下来,我们可以使用urllib库下载这些音频文件。 ```python def download_audio(links): for i, link in enumerate(links): path = f'audio_{i}.mp3' urllib.request.urlretrieve(link, path) ``` 这个函数将遍历所有的音频链接,使用urllib库下载每个文件,并将它们保存为mp3文件。 最后,我们可以调用这两个函数,爬取猫耳FM中的音频文件并下载它们。 ```python links = get_audio_links() download_audio(links) ``` 这样,我们就完成了爬取猫耳FM中十首音乐音频的完整代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

到点就困告

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值