#爬取网易云音乐
url="https://music.163.com/discover/toplist" #歌单连接地址
url2 = 'http://music.163.com/song/media/outer/url?id='#歌曲地址
headers={#请求报头
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'}
req=Request(url,headers=headers) #使用户可以访问该网站,认为你是浏览器,而不是爬虫
with urlopen(req) as html:#
text=html.read().decode('utf-8') #读取文件并且解码
doc=etree.HTML(text) #解析HTML文档
links=doc.xpath("//ul[@class='f-hide']/li/a/@href")#获取歌曲id
songs=doc.xpath("//ul[@class='f-hide']/li/a/text()")#获取歌曲名
ids = [ link[9::] for link in links] #切片工具只取id名部分
for sid,title in zip(ids,songs): #遍历 zip包一一对应
time.sleep(1) #间隔一秒
req2 = Request(url2 + str(sid),headers=headers) #歌曲地址加上id名
with urlopen(req2) as html: #在html中打开加载好的歌曲href
urlretrieve(html.geturl(),"songs/%s.mp3"%title)#获取geturl到歌曲信息,将歌曲下载到文件songs中
print("songs/%s.mp3 下载完成"%title)。