0131单首爬取酷狗免费音乐

部署运行你感兴趣的模型镜像

这个是爬取免费的音乐,目前收费的我还不会,只有1min的试听

1.找到我们要爬取的歌曲

进入酷狗的官方网站,找一首你想爬取的歌曲进入到播放界面

按f12打开开发者工具,在这个路径:Network→Media

下找到后缀为mp3的接口(没有这个的刷新网站,或者拖动进度条就会出现...........如果一直不出现可以直接按ctrl+f搜索mp3找到下面图片中箭头指向的接口)。

2.找到歌曲的url地址

复制画红线的这一块,按ctrl+f粘贴到搜索框中进行搜索

点击图片中箭头指向的

我们可以在preview中看到歌曲的信息

Header里的框中内容是音乐的url地址(后面的是参数,这里我们的url只需要这一小部分的就行)

在payload中可以看到相关的参数

此时我们已经知道了我们需要爬取内容的基本信息可以写代码了。

1.进行伪装

headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36'}

2.输入url

url='https://wwwapi.kugou.com/play/songinfo'

3.输入参数(payload里的参数复制过来,转换成字典的格式)这里提供一个方法

选中复制过来的参数

在pycharm中按Ctrl+R

源匹配为(.*?):(.*)
替换匹配为 "$1": "$2",

复制过来的参数可能在值前有空格可能会报错,需要删除掉

4.我们冲这个接口可以知道是get请求,所以我们需要requests库来进行get请求获取网站的源头代码

import requests

response = requests.get(url,params=data,headers=headers)
json_data = response.json()
print(json_data)###检测是否爬取到香港管内容,可以删除掉

可以看到我们已经爬取到了相关内容

3.解析爬取到的源代码

#获取歌曲的名字

我们可以看到在preview下data下audio_name有其名字

music_name =json_data['data']['audio_name']
music_url = json_data['data']['play_url']
print(music_name,'\n',music_url)

 获取歌曲内容&&保存到文件

#
music_content = requests.get(url = music_url,headers=headers).content

# #保存到文件中
with open('music\\'+music_name+'mp3','wb') as f:
    f.write(music_content)

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 如何使用 Python 编写代码爬取酷狗音乐 500 首歌曲的 MV 链接 为了实现从酷狗音乐网站爬取 500 首歌曲的 MV 链接,可以使用 Selenium 和 BeautifulSoup 的组合。以下是一个完整的解决方案,包括环境搭建、代码实现以及注意事项。 #### 环境搭建与依赖安装 在开始之前,需要确保安装了以下 Python 库: - `selenium`: 用于模拟浏览器行为。 - `beautifulsoup4`: 用于解析 HTML 内容。 - `webdriver-manager`: 自动管理 WebDriver 的版本。 可以通过以下命令安装这些库: ```bash pip install selenium beautifulsoup4 webdriver-manager ``` #### 代码实现 以下是完整的代码示例,用于爬取酷狗音乐前 500 首歌曲的 MV 链接: ```python from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Options from webdriver_manager.chrome import ChromeDriverManager from bs4 import BeautifulSoup import time # 设置 Chrome 选项 chrome_options = Options() chrome_options.add_argument("--headless") # 无头模式运行 chrome_options.add_argument("--disable-gpu") chrome_options.add_argument("--no-sandbox") # 初始化 WebDriver driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options) # 打开酷狗音乐首页 url = "https://www.kugou.com/" driver.get(url) # 搜索 MV 页面(假设通过关键词“MV”搜索) search_box = driver.find_element(By.ID, "search_key") search_box.send_keys("MV") search_button = driver.find_element(By.CLASS_NAME, "search_btn") search_button.click() # 解析页面内容 mv_links = [] while len(mv_links) < 500: # 获取当前页面的 HTML 内容 soup = BeautifulSoup(driver.page_source, 'html.parser') # 提取 MV 链接 mv_items = soup.find_all('div', class_='list_item') for item in mv_items: link = item.find('a', href=True) if link and link['href'] not in mv_links: mv_links.append(link['href']) print(f"Found MV: {link['href']}") # 输出已找到的 MV 链接 # 如果链接数量不足 500,尝试翻页 next_page = driver.find_elements(By.CLASS_NAME, "page_next") if next_page and next_page[0].is_enabled(): next_page[0].click() time.sleep(3) # 等待页面加载 else: break # 关闭 WebDriver driver.quit() # 输出结果 print(f"Total MV links found: {len(mv_links)}") for i, link in enumerate(mv_links[:500]): print(f"{i + 1}: {link}") ``` #### 注意事项 1. **反爬虫机制**:酷狗音乐可能具有一定的反爬虫机制,频繁请求可能会导致 IP 被封禁。建议在每次请求之间加入随机延时以降低被检测的风险[^2]。 2. **动态加载内容**:部分 MV 链接可能通过 JavaScript 动态加载,需要确保 Selenium 成功加载完整页面后再进行解析[^2]。 3. **合法性**:在爬取数据时,请遵守相关网站的使用条款和法律规范,避免未经授权的大规模数据采集行为。 #### 结果验证 运行上述代码后,程序将输出前 500 首歌曲的 MV 链接。如果目标页面结构发生变化,可能需要调整解析逻辑以适应新的 HTML 格式[^1]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

...Rain...

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

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

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

打赏作者

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

抵扣说明:

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

余额充值