python爬虫基础(爬取一首网易云音乐歌曲)

python爬虫基础(爬取一首网易云音乐歌曲)


嗨!收到一张超级美丽的风景图,愿你每天都能顺心!

安装库requests

简单的爬虫需要用到我们python的一个外置库。

  • 安装命令pip install requests
  • 在这里插入图片描述

简单爬虫步骤

导库

import requests

寻址

这里以网易云音乐为例
随意打开网易云音乐的一个页面,打开开发者工具(右键检查,或者按F12)
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

接下来写代码

url = 'https://m701.music.126.net/20240516143320/f663ca75df431349c5b48729415434eb/jdyyaac/obj/w5rDlsOJwrLDjj7CmsOj/4941835306/70a5/04ea/d8e4/ad638f43f04877568950be77cbf19ccc.m4a'

播放地址复制粘贴就好

伪装浏览器

由于我们是代码去访问,所以要将自己伪装成浏览器去访问地址,来防止监测
在这里插入图片描述

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

发送请求

刚刚我们看到是get请求(还有一种请求方式是post请求)

res = requests.get(url,headers=headers)

保存文件

with open('aaa.mp3','wb') as f:
    f.write(res.content)

with open 是打开文件。aaa.mp3是保存的文件名字。wb是保存的文件格式(音乐为二进制文件)。as f是取别名。res.content是保存二进制文件内容

总代码

import requests

url = 'https://m701.music.126.net/20240516143320/f663ca75df431349c5b48729415434eb/jdyyaac/obj/w5rDlsOJwrLDjj7CmsOj/4941835306/70a5/04ea/d8e4/ad638f43f04877568950be77cbf19ccc.m4a'

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

res = requests.get(url,headers=headers)

with open('aaa.mp3','wb') as f:
    f.write(res.content)

在这里插入图片描述

运行后会生成一个播放文件
在这里插入图片描述

可以在文件中打开

结语

本次分享就到这里了,感谢小伙伴的浏览,如果有什么建议,欢迎在评论区留言,如果给小伙伴们带来了一些收获,请留下你的小赞,你的点赞和关注将会成为博主分享每日学习的动力。

下一次会更新一次爬多首音乐(包括我们歌曲的名字一起爬下来)

Python中,我们可以使用`requests`库来发送HTTP请求获取网页内容,然后结合`BeautifulSoup`库解析HTML结构找到歌曲下载链接。由于网易云音乐的资源通常是通过流媒体播放而非直接提供下载链接,我们通常需要模拟登录、抓取音频流地址,再通过其他工具如`pydub`处理并转换成MP3文件。以下是简单的步骤: 1. 安装必要的库: ``` pip install requests beautifulsoup4 pydub ``` 2. 导入库并设置User-Agent(为了防止被服务器识别为机器人): ```python import requests from bs4 import BeautifulSoup from pydub import AudioSegment ``` 3. 创建函数,以歌曲URL为例(假设已知): ```python def download_song(url): headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" } # 发送GET请求获取页面源码 response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, "html.parser") # 解析音频流地址 audio_url = None for script in soup.find_all("script", type="application/json"): data = script.string if 'playinfo' in data: song_info = json.loads(data) audio_url = song_info['data']['url'] break if not audio_url: print("Failed to find audio URL.") return # 使用pydub下载并保存音频 audio = AudioSegment.from_url(audio_url) output_path = "song.mp3" # 根据需要自定义保存路径 audio.export(output_path, format="mp3") print(f"Succeeded! Song saved as {output_path}") ``` 4. 调用函数: ```python url = "https://music.163.com/#/song?id=xxxxx" # 替换为实际歌曲ID download_song(url) ``` 注意:网易云音乐有反爬策略,频繁抓取可能会导致IP受限,因此在实际操作时,最好使用代理IP并设置合理的延时。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值