python爬虫入门 ✦ 爬取下载网易云音乐

此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。

1.略

本文章无任何实际意义,纯属复制黏贴

import re
import time
import requests
from selenium import webdriver

name = input("请输入歌手或歌名:")
print("====网易云音乐下载器====")


url = 'https://music.163.com/#/search/m/?s=%s' % name
headres = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'
}
print("请稍后,正在加载音乐")
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get(url)
driver.switch_to_frame("g_iframe")
print("歌曲加载完成,开始下载")
time.sleep(2)
page_src = driver.page_source

driver.close()
# print(page_src)

url_head = 'http://music.163.com/song/media/outer/url?id=%s.mp3'

# music_result = re.findall('<a id="song_(.*?)" class="ply.*?data-res-data="(.*?)">.*?b title="(.*?)">.*?.*?',page_src, re.S)

singer_result = re.findall('<a id="song_(.*?)" class="ply.*?>.*?b title="(.*?)">.*?<a href="/artist?.*?">(.*?)</a>.*?',page_src, re.S)


for i in singer_result:
    all_url = url_head % i[0]
    res = requests.get(all_url)
    res.encoding = 'utf-8'
    music = res.content
    # print('链接:%s,歌名:%s' % (all_url, i[1]))
    with open('%s-%s.mp3' % (i[2], i[1]), 'wb') as f:
        f.write(music)
        print('已下载 歌曲:%s-%s.mp3' % (i[2], i[1]))
        f.flush()
发布了34 篇原创文章 · 获赞 210 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_45081575/article/details/98184234