爬虫基础实例---网易云音乐爬取(只要是能试听的歌曲都能爬取到)

爬取页面里能看到的东西,都跟简单,关键就是寻找真正的URL,要有耐心,那下面就是我找到歌曲URL的截图,这里需要用到外链,把页面里的歌曲详情页的URL复制进来(红色的框里),点击提交,然后你会得到真正歌曲的URL(绿色框里),然后打开绿色的路由你就能听到音乐了!!!
爬虫基础实例---网易云音乐爬取(只要是能试听的歌曲都能爬取到)_第1张图片
爬虫基础实例---网易云音乐爬取(只要是能试听的歌曲都能爬取到)_第2张图片
好了,长话短说,横道直入,直接上硬的!!!

import requests
import os
from lxml import etree
# 伪装浏览器
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36'
}
# 网易云音乐歌单的路由
url = 'https://music.163.com/playlist?id=1995140553'

# 这里有个外链接,音乐外链:"https://link.hhtjim.com/",
# 打开之后把路由里的URL复制进去,提交,然后会得到新的路由,再打开你会得到你想要的
wailianjie_url = "https://link.hhtjim.com/163/"

# 代理IP:
proxy = {
    "https":"111.231.94.44:8888"
}

# 发送进入网易云音乐歌单请求
response = requests.get(url=url,headers=headers,proxies=proxy)

print(response.text)
# 这儿你要注意,不要看F12里的代码了,那都是迷惑人的,你需要把请求到的页面下载到本地,好好的看看,这里面的才是真的,才能拿到
etrees = etree.HTML(response.text)

music_li = etrees.xpath('//ul[@class="f-hide"]/li')

print(len(music_li),music_li)

file_path = "./网易云音乐/励志歌单/"

if not os.path.exists(file_path):
    os.makedirs(file_path)

print("开始爬取网易云音乐")
num = 0
for li in music_li:
    num = num + 1   #z做个计数器
    song_name = li.xpath('./a/text()')[0]    #咸鱼
    song_url = li.xpath('./a/@href')[0]   #/song?id=5240550
    # 截取歌曲id
    song_id = song_url.split('=')[-1]    #5240550
    # 拼接歌曲的URL     https: // link.hhtjim.com / 163 / 5240550.mp3
    music_url = wailianjie_url + song_id + ".mp3"
    print(song_name+"------"+music_url)
    # 北京东路的日子 - -----https: // link.hhtjim.com / 163 / 5240550.mp3
    # 再次发送请求
    music_content = requests.get(url=music_url,headers=headers,proxies=proxy).content
    print(music_content)
    # 下载本地,很简单的
    music_name = file_path + song_name + ".mp3"
    with open(music_name,"wb") as f:
        f.write(music_content)
        print(f"{song_name}下载完成")
print(f"网易云音乐已全部爬取完毕,共计---{num}---首音乐")

好了,到此结束,觉得不错的点个赞,再见!!!

你可能感兴趣的:(Python爬虫实战)