python爬取网易云音乐,一个网页就可以完成!

python爬取网易云音乐

发现了一首非常好听的歌曲,在网易云,安利给大家:
python爬取网易云音乐,一个网页就可以完成!_第1张图片
网易云链接:http://music.163.com/song?id=465921195&userid=3262694145
非常好听的一首歌,当我想把它下载下来的时候:
python爬取网易云音乐,一个网页就可以完成!_第2张图片

正经人谁充VIP啊!?

记住这句话啊!我们程序员受不了这气!!!
上网搜了一下发现,嘿嘿
http://music.163.com/song/media/outer/url?id=(这里填入音乐id).mp3
可以直接下载
比如这首《还是分开》,id是465921195,那可以进入:
**http://music.163.com/song/media/outer/url?id=465921195.mp3
下载,就很棒!

那么python下载器就很容易做了,只要用到urllib的requests.get就可以了

headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) 		     Chrome/68.0.3440.84 Safari/537.36"
}
url = 'http://music.163.com/song/media/outer/url?id=' + str(song_id)+'.mp3'
response = requests.get(url, headers=headers)
filename = name+".mp3"
with open(filename, 'wb')as f:
        f.write(response.content)
        print("下载成功!")

很简单嘛!
加上亿点点细节,搞个问答的,搞个开头:

import contextlib
with contextlib.redirect_stdout(None):
    import pygame
import requests
import json
import os 
import time
from urllib.request import urlretrieve
import urllib
# import mp3play
def start():
    pygame.init()
    screen=pygame.display.set_mode([958,225])
    pygame.display.set_caption('爬取网易云音乐')
    img = pygame.image.load("logo.jpg")
    screen.blit(img, (0,0))
    pygame.display.update()
    pygame.mixer.init()
    #pygame.mixer.music.load("open.MP3")
    #pygame.mixer.music.play()
    time.sleep(4)
    pygame.quit()
def q():
    os.system('cls')
def get_mp3(song_id, name):
    headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36"
            }
    url = 'http://music.163.com/song/media/outer/url?id=' + str(song_id)+'.mp3'
    #网页格式:http://music.163.com/song/media/outer/url?id=1409329655.mp3
    print()
    print("获取下载网页为:  ",url)
    print()
    print("正在下载:",name)
    try:
        response = requests.get(url, headers=headers)
        filename = name+".mp3"
        with open(filename, 'wb')as f:
                f.write(response.content)
                print("下载成功!")
    except:
        print("下载失败了o╥﹏╥o……可能是由于:\n①您输入的网页链接有错\n②系统崩溃了\n③网络出了问题\n④这是2020年的版本,可能网易云音乐改变了插口结构")
    print()
    print()
if __name__ == "__main__":
    start()
    while True:
        basic_url = input("输入您想要下载的网易云音乐的链接音乐Id部分,即id=   ")
        #规范格式:http://music.163.com/song?id=1409329655&userid=3262694145
        basic_name = input("输入音乐名字:   ")
        get_mp3(basic_url, basic_name)
        

源码↑
就行了!
logo.jpg在这:
python爬取网易云音乐,一个网页就可以完成!_第3张图片
很好!
需要的可以在加上个搜索的功能,赤裸裸挑衅网易云!
python爬取网易云音乐,一个网页就可以完成!_第4张图片
于是,你什么歌都有了!
不用谢我!给个赏或者点个赞就行!

你可能感兴趣的:(python爬虫,python,网易云音乐)