aloneindefeat
#爬取网易云音乐

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)。

分类:

技术点:

相关文章: