网易云音乐榜单爬取

打开网易云音乐,进入飙升榜

进入到开发者工具页面,搜索列表页歌曲名称,查看请求地址

模拟浏览器发出请求,查看响应内容

import requests

url = 'https://music.163.com/discover/toplist?id=19723756'

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

response = requests.get(url=url, headers=headers)
print(response.text)

响应结果:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
......
<title>飙升榜 - 排行榜 - 网易云音乐</title>
......
<div class="u-title u-title-1 f-cb"><h3><span class="f-ff2">歌曲列表</span></h3><span class="sub s-fc3"><span>100</span>首歌</span><div class="more s-fc3">播放:<strong class="s-fc6" id="play-count">5967535104</strong>次</div></div>
<div id="song-list-pre-cache" data-key="song_toplist-19723756" data-simple="0" data-pvnamed="0">
<div class="u-load s-fc4"><i class="icn"></i> 加载中...</div>
<ul class="f-hide"><li><a href="/song?id=2164852326">GoneBad(PHONK)</a></li><li><a href="/song?id=2151853884">我会好好的 (Live版)</a></li><li><a href="/song?id=1868810493">Anyone(80's Version)</a></li><li><a href="/song?id=2166485338">喜帖街</a></li><li><a href="/song?id=70713">Love U 2</a></li><li><a href="/song?id=2166087862">河</a></li><li><a href="/song?id=2165610149">Jar Of Love</a></li><li><a href="/song?id=2166118123">妥协 (Live版)</a></li><li><a href="/song?id=2145896224">当路灯断了电</a></li><li><a href="/song?id=2163953992">是想你的声音啊2024</a></li><li><a href="/song?id=2164313909">我们不给草</a></li><li><a href="/song?id=32737469">LoveU2</a></li><li><a href="/song?id=2063210044">I Walk This Earth All By Myself</a></li><li><a href="/song?id=2133568636">Fast Cars & Superstars (Extended)</a></li><li><a href="/song?id=1803913957">Trippin</a></li><li><a href="/song?id=2600259312">最小的房间</a></li><li><a href="/song?id=2165544251">月下</a></li><li><a href="/song?id=2599542235">网恋</a></li><li><a href="/song?id=2166067707">下雨天</a></li><li><a href="/song?id=2145152864">宝莲</a></li><li><a href="/song?id=1397248051">Just Friends</a></li><li><a href="/song?id=2100671888">放纵</a></li><li><a href="/song?id=2120974013">不得不爱</a></li><li><a href="/song?id=139764">不得不爱</a></li><li><a href="/song?id=2102493822">Moth</a></li><li><a href="/song?id=2164832581">能不能让我回到最初的记忆</a></li><li><a href="/song?id=2166486002">野风筝</a></li><li><a href="/song?id=2599615008">III(当遗书只能写两个字)</a></li><li><a href="/song?id=3956911">Duvet</a></li><li><a href="/song?id=2086327879">鲜花</a></li><li><a href="/song?id=2166118105">连名带姓 (Live版)</a></li><li><a href="/song?id=2156757027">you don’t get</a></li><li><a href="/song?id=2599557067">回 忆 凌 迟</a></li><li><a href="/song?id=2159189900">If You Want</a></li><li><a href="/song?id=2600218510">霞</a></li><li><a href="/song?id=2159142475">Mood</a></li><li><a href="/song?id=2141105706">无名的人</a></li><li><a href="/song?id=2139634085">Butcher Vanity (feat. Jamie Paige & ricedeity)</a></li><li><a href="/song?id=2162980501">EMO</a></li><li><a href="/song?id=2130949397">紧急应变逃生法</a></li><li><a href="/song?id=109995">离人</a></li><li><a href="/song?id=2154224380">Million Dollar Baby (Freestyle)</a></li><li><a href="/song?id=2600223535">CHINA-溯</a></li><li><a href="/song?id=2167072459">37.2万亿次被爱</a></li><li><a href="/song?id=1968316652">Wasted (Nightcore) [Bass Boosted] (feat. harmony haven)</a></li><li><a href="/song?id=522429778">Never Enough</a></li><li><a href="/song?id=209586">妥协</a></li><li><a href="/song?id=2156522597">阳光下的星星</a></li><li><a href="/song?id=2163888616">一百万个可能(在一瞬间有100万个可能)</a></li><li><a href="/song?id=2154102422">天若有情 (Live版)</a></li><li><a href="/song?id=2129666437">你在 不在</a></li><li><a href="/song?id=2166118151">冬眠 (Live版)</a></li><li><a href="/song?id=2071452224">Take Me Hand</a></li><li><a href="/song?id=2166444455">Askitxamiz(还会有好处)</a></li><li><a href="/song?id=2163974497">瘦子 (Live版)</a></li><li><a href="/song?id=2165750615">瘦身男女</a></li><li><a href="/song?id=2014019634">假装快乐</a></li><li><a href="/song?id=2159389737">又在想你</a></li><li><a href="/song?id=2599522185">一罐爱</a></li><li><a href="/song?id=2149188052">Fast cars (2024 Radio Edit)</a></li><li><a href="/song?id=1351578882">One Thing</a></li><li><a href="/song?id=2161881997">留不住风雨</a></li><li><a href="/song?id=2134852913">Wish You Hell</a></li><li><a href="/song?id=2159184104">聊天记录越往上你越爱我( Shawty)</a></li><li><a href="/song?id=2148885579">unbreakable love</a></li><li><a href="/song?id=2600032102">Shu Shu</a></li><li><a href="/song?id=2163320621">红霞帔</a></li><li><a href="/song?id=19827042">Call You Tonight</a></li><li><a href="/song?id=2138969676">Is It Just Me?</a></li><li><a href="/song?id=2599500900">小气鬼</a></li><li><a href="/song?id=2153774529">The Last Wish (Radio Edit)</a></li><li><a href="/song?id=2165782373">等烟火的人</a></li><li><a href="/song?id=2076195413">良爱苦口</a></li><li><a href="/song?id=2159130175">最初的记忆</a></li><li><a href="/song?id=2100630469">错位时空</a></li><li><a href="/song?id=25699092">迷宫</a></li><li><a href="/song?id=2159086461">Qing hua</a></li><li><a href="/song?id=2599632687">人选</a></li><li><a href="/song?id=2161577189">毕业典礼</a></li><li><a href="/song?id=1917046317">Just Friends</a></li><li><a href="/song?id=2158936855">月並みに輝け</a></li><li><a href="/song?id=2165498251">渊</a></li><li><a href="/song?id=2600258168">辗转年华</a></li><li><a href="/song?id=1807860447">Mind On You</a></li><li><a href="/song?id=2164765878">有谁懂我的难过</a></li><li><a href="/song?id=5100462">Dilemma</a></li><li><a href="/song?id=2022954257">银河守望</a></li><li><a href="/song?id=2075804849">Mistletoe</a></li><li><a href="/song?id=2148826386">路上的光</a>
......
</html>

使用正则表达式提取音乐名称

import re

html_data = re.findall('<li><a href="/song\?id=(\d+)">(.*?)</a>', response.text)
for song_id, title in html_data:
music_url = f'https://music.163.com/discover/toplist?id='
print(song_id, title)

运行结果:

2164852326 GoneBad(PHONK)
2151853884 我会好好的 (Live版)
1868810493 Anyone(80's Version)
2166485338 喜帖街
70713 Love U 2
21660878622165610149 Jar Of Love
2166118123 妥协 (Live版)
2145896224 当路灯断了电
2163953992 是想你的声音啊2024
2164313909 我们不给草
32737469 LoveU2
2063210044 I Walk This Earth All By Myself
2133568636 Fast Cars & Superstars (Extended)
1803913957 Trippin
2600259312 最小的房间
2165544251 月下
2599542235 网恋
2166067707 下雨天
2145152864 宝莲
1397248051 Just Friends
2100671888 放纵
2120974013 不得不爱
139764 不得不爱
2102493822 Moth
2164832581 能不能让我回到最初的记忆
2166486002 野风筝
2599615008 III(当遗书只能写两个字)
3956911 Duvet
2086327879 鲜花
2166118105 连名带姓 (Live版)
2156757027 you don’t get
2599557067 回 忆 凌 迟
2159189900 If You Want
26002185102159142475 Mood
2141105706 无名的人
2139634085 Butcher Vanity (feat. Jamie Paige & ricedeity)
2162980501 EMO
2130949397 紧急应变逃生法
109995 离人
2154224380 Million Dollar Baby (Freestyle)
2600223535 CHINA-2167072459 37.2万亿次被爱
1968316652 Wasted (Nightcore) [Bass Boosted] (feat. harmony haven)
522429778 Never Enough
209586 妥协
2156522597 阳光下的星星
2163888616 一百万个可能(在一瞬间有100万个可能)
2154102422 天若有情 (Live版)
2129666437 你在 不在
2166118151 冬眠 (Live版)
2071452224 Take Me Hand
2166444455 Askitxamiz(还会有好处)
2163974497 瘦子 (Live版)
2165750615 瘦身男女
2014019634 假装快乐
2159389737 又在想你
2599522185 一罐爱
2149188052 Fast cars (2024 Radio Edit)
1351578882 One Thing
2161881997 留不住风雨
2134852913 Wish You Hell
2159184104 聊天记录越往上你越爱我( Shawty)
2148885579 unbreakable love
2600032102 Shu Shu
2163320621 红霞帔
19827042 Call You Tonight
2138969676 Is It Just Me?
2599500900 小气鬼
2153774529 The Last Wish (Radio Edit)
2165782373 等烟火的人
2076195413 良爱苦口
2159130175 最初的记忆
2100630469 错位时空
25699092 迷宫
2159086461 Qing hua
2599632687 人选
2161577189 毕业典礼
1917046317 Just Friends
2158936855 月並みに輝け
21654982512600258168 辗转年华
1807860447 Mind On You
2164765878 有谁懂我的难过
5100462 Dilemma
2022954257 银河守望
2075804849 Mistletoe
2148826386 路上的光
2119517202 Moshi Moshi (feat. 百足)
2091082528 沉溺(你让我的心不再结冰)
2599553566 我想你不知道我喜欢你
1469768565 你要如何,我们就如何 (Live)
2154333497 Luv(sic), pt3
2163646817 威士忌酸
2152487591 Sacred Play Secret Place雨声
2154832088 起卦
1498236566 Call Me Now (Rob Adans Remix)
2146006430 Range Rover
26117675 我的秘密

下载音乐

import os

filename = 'music\\'
if not os.path.exists(filename):
    os.makedirs(filename)

response = requests.get(url=url, headers=headers)
# print(response.text)
html_data = re.findall('<li><a href="/song\?id=(\d+)">(.*?)</a>', response.text)
for song_id, title in html_data:
    music_url = f'http://music.163.com/song/media/outer/url?id={song_id}.mp3'
    # 对于音乐地址发送请求,获取二进制数据
    music_content = requests.get(music_url, headers=headers).content
    with open('music\\' + title + '.mp3', 'wb') as f:
        f.write(music_content)
    print(song_id, title)

 

posted @ 2024-06-21 18:45  JJJhr  阅读(128)  评论(0编辑  收藏  举报