Python QQ音乐爬虫:搜索并下载指定歌手音乐

本文将介绍一个简单的 Python 爬虫程序,用于从 QQ 音乐网站上爬取指定歌手的音乐。该程序使用了 Requests 和 BeautifulSoup 库,可以自动搜索并下载指定歌手的所有音乐。

代码示例

import requests
from bs4 import BeautifulSoup

# 定义搜索歌曲的函数
def search_music(artist):
    # 构造搜索URL
    url = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp?new_json=1&remoteplace=txt.yqq.center&searchid=1&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=20&w=' + artist
    # 发送请求
    response = requests.get(url)
    # 解析响应内容
    soup = BeautifulSoup(response.text, 'html.parser')
    # 获取歌曲列表
    music_list = soup.select('.songlist__list > .songlist__item')
    # 遍历歌曲列表,输出歌曲名称和播放链接
    for music in music_list:
        print(music.select('.songlist__songname_txt > a')[0].text)
        print('https://y.qq.com/n/yqq/song/' + music['data-mid'] + '.html\n')

# 定义下载歌曲的函数
def download_music(url, filename):
    # 发送请求
    response = requests.get(url)
    # 写入文件
    with open(filename, 'wb') as f:
        f.write(response.content)

# 搜索指定歌手的音乐
search_music('周杰伦')

# 下载指定歌曲
download_music('https://isure.stream.qqmusic.qq.com/C400000j0bVf2FSA3z.m4a?guid=8969651280&vkey=768C9ECE32E9C43E6AF8B6B81BFFDEBC702A1F97A8A185EB9D9A1AEBD18E0C8AC8A3D3F321F3D2F2C1E8CE1A9C9D844C7AEF8BEB8BE83D16&uin=0&fromtag=38', '周杰伦-青花瓷.m4a')

代码说明

  1. search_music 函数用于搜索指定歌手的音乐,并输出歌曲名称和播放链接。
  2. download_music 函数用于下载指定的歌曲,需要传入歌曲的播放链接和保存的文件名。
  3. 在示例中,我们使用 search_music('周杰伦') 搜索周杰伦的音乐,并输出歌曲名称和播放链接。
  4. 我们可以在输出结果中找到我们想要下载的歌曲链接,然后使用 download_music 函数下载指定的歌曲。

使用方法

  1. 安装必要的库: pip install requests beautifulsoup4
  2. 将代码保存为 .py 文件,例如 qq_music_crawler.py
  3. 在代码中修改 search_music 函数中的 artist 参数为你要搜索的歌手名。
  4. 运行代码: python qq_music_crawler.py

注意

  • 此代码仅供学习参考,请勿用于任何违法行为。
  • QQ 音乐可能会更改网站结构,导致代码失效,需要及时更新代码。
  • 由于版权问题,下载音乐可能会存在风险,请谨慎使用。
Python QQ音乐爬虫:搜索并下载指定歌手音乐

原文地址: https://www.cveoy.top/t/topic/nDMx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录