猫哥教你写爬虫 044--模拟浏览器-作业

小作业: 使用爬虫, 下载网易云音乐

网易云播放连接

http://music.163.com/song/media/outer/url?id=这里填歌曲id.mp3

代码执行效果...

C:\Users\Administrator\Desktop\demo>python -u "c:\Users\Administrator\Desktop\小白selenium爬取网易云音乐\musicList.py"
请输入您在网易云想听的歌曲: 水手
DevTools listening on ws://127.0.0.1:55067/devtools/browser/83140ac0-30e3-4a3c-b93a-d61cbb173f5a
1: 水手 - 郑智化
2: 水手 - 郑智化
3: 水手 - 郑智化
4: 水手公园 - GALA
5: 水手(Live) - 郑智化
6: 水手(Cover:郑智化) - 陈洲宏
7: 水手 - 迪克牛仔
8: 水手公园 + 阳光彩虹小白马 (Live) - (原唱:GALA/大张伟) - 何屹繁/钮杨圣轩/哲野/润羿///
9: 水手 - 张泽禹/胡钰佳
10: 水手 - 陈进
11: 水手 - 张玮玮和郭龙
12: 水手 - 群星
13: 水手 - 洪一平
14: 水手公园 - GALA
15: 大力水手主题曲 - Various Artists
16: 水手 - 动力火车
17: 水手 - 迪克牛仔
18: 水手 - Caesar L
19: 水手 - 群星
20: 水手有点怕水(Hydrophobic Salior) - MT1990
21: セーラー服と機関銃 - (电影 水手服与机关枪:毕业 主题曲 / 映画『セーラー服と機関銃 ‐卒業‐』主題歌) - 橋本環奈
22: 水手 - 张伟哲
23: 水手 - 陈秋霞
24: 郑智化-水手 (DJ阿福 Remix)(DJ阿福 (DJ-Afu) remix) - DJ阿福
25: 水手 (Tribute Version) - 複製貓
26: 少女与水手(口琴) - 群星
27: 小小世界+荷包蛋+说哈罗+山上的孩子+快乐的向前走+哎哎+大力水手+手牵手+哈哈笑+稻草里的火鸡+种树歌+大象玩皮球+小栗子+下雨+小红妹妹和小熊+虹彩妹妹+木
瓜+小螳螂+四只小小鸟+西风的话+哈巴狗+兰花草+泥娃娃 - 群星
28: 【局座】水手 - LPY/东林二七
29: セーラー服と机関铳 - 长泽雅美
30: 水手物语 - 陈百强
请输入您乡下仔的歌曲序号: 1
水手 - 郑智化 正在下载...
水手 - 郑智化 下载完成!!!
C:\Users\Administrator\Desktop\demo>
复制代码
import requests
import time
from selenium import webdriver
music_list = []
def get_list(key_word):
    url = "https://music.163.com/#/search/m/?s="+key_word
    driver = webdriver.Chrome()
    driver.get(url)
    time.sleep(2)
    driver.switch_to.frame("g_iframe")  # 最重要的一步
    music_a_list = driver.find_elements_by_css_selector(
        "div.td.w0 > div > div > a:nth-child(1)")
    name_b_list = driver.find_elements_by_css_selector(
        "div.td.w0 > div > div > a > b")
    singer_div_list = driver.find_elements_by_css_selector("div.td.w1 > div")
    for i in range(0, len(music_a_list)):
        music_id = music_a_list[i].get_attribute('href')[30:]
        music_name = name_b_list[i].get_attribute('title')
        singer_name = singer_div_list[i].text
        print('{}: {} - {}'.format(i+1, music_name, singer_name))
        global music_list
        music_list.append({
            'music_id': music_id,
            'music_name': music_name,
            'singer_name': singer_name
        })
    driver.close()
def down_mp3(index):
    global music_list
    music_id = music_list[index]['music_id']
    music_name = music_list[index]['music_name']
    singer_name = music_list[index]['singer_name']
    down_url = 'http://music.163.com/song/media/outer/url?id=%s.mp3' % music_id
    with open('E:\\网易云音乐\\{} - {}.mp3'.format(music_name, singer_name), 'wb') as file:
        print('{} - {} 正在下载...'.format(music_name, singer_name))
        file.write(requests.get(down_url).content)
        print('{} - {} 下载完成!!!'.format(music_name, singer_name))
if __name__ == '__main__':
    key_word = input('请输入您在网易云想听的歌曲: ')
    get_list(key_word)
    music_index = input('请输入您乡下仔的歌曲序号: ')
    down_mp3(int(music_index)-1)
复制代码

快速跳转:

猫哥教你写爬虫 000--开篇.md
猫哥教你写爬虫 001--print()函数和变量.md
猫哥教你写爬虫 002--作业-打印皮卡丘.md
猫哥教你写爬虫 003--数据类型转换.md
猫哥教你写爬虫 004--数据类型转换-小练习.md
猫哥教你写爬虫 005--数据类型转换-小作业.md
猫哥教你写爬虫 006--条件判断和条件嵌套.md
猫哥教你写爬虫 007--条件判断和条件嵌套-小作业.md
猫哥教你写爬虫 008--input()函数.md
猫哥教你写爬虫 009--input()函数-人工智能小爱同学.md
猫哥教你写爬虫 010--列表,字典,循环.md
猫哥教你写爬虫 011--列表,字典,循环-小作业.md
猫哥教你写爬虫 012--布尔值和四种语句.md
猫哥教你写爬虫 013--布尔值和四种语句-小作业.md
猫哥教你写爬虫 014--pk小游戏.md
猫哥教你写爬虫 015--pk小游戏(全新改版).md
猫哥教你写爬虫 016--函数.md
猫哥教你写爬虫 017--函数-小作业.md
猫哥教你写爬虫 018--debug.md
猫哥教你写爬虫 019--debug-作业.md
猫哥教你写爬虫 020--类与对象(上).md
猫哥教你写爬虫 021--类与对象(上)-作业.md
猫哥教你写爬虫 022--类与对象(下).md
猫哥教你写爬虫 023--类与对象(下)-作业.md
猫哥教你写爬虫 024--编码&&解码.md
猫哥教你写爬虫 025--编码&&解码-小作业.md
猫哥教你写爬虫 026--模块.md
猫哥教你写爬虫 027--模块介绍.md
猫哥教你写爬虫 028--模块介绍-小作业-广告牌.md
猫哥教你写爬虫 029--爬虫初探-requests.md
猫哥教你写爬虫 030--爬虫初探-requests-作业.md
猫哥教你写爬虫 031--爬虫基础-html.md
猫哥教你写爬虫 032--爬虫初体验-BeautifulSoup.md
猫哥教你写爬虫 033--爬虫初体验-BeautifulSoup-作业.md
猫哥教你写爬虫 034--爬虫-BeautifulSoup实践.md
猫哥教你写爬虫 035--爬虫-BeautifulSoup实践-作业-电影top250.md
猫哥教你写爬虫 036--爬虫-BeautifulSoup实践-作业-电影top250-作业解析.md
猫哥教你写爬虫 037--爬虫-宝宝要听歌.md
猫哥教你写爬虫 038--带参数请求.md
猫哥教你写爬虫 039--存储数据.md
猫哥教你写爬虫 040--存储数据-作业.md
猫哥教你写爬虫 041--模拟登录-cookie.md
猫哥教你写爬虫 042--session的用法.md
猫哥教你写爬虫 043--模拟浏览器.md
猫哥教你写爬虫 044--模拟浏览器-作业.md
猫哥教你写爬虫 045--协程.md
猫哥教你写爬虫 046--协程-实践-吃什么不会胖.md
猫哥教你写爬虫 047--scrapy框架.md
猫哥教你写爬虫 048--爬虫和反爬虫.md
猫哥教你写爬虫 049--完结撒花.md

转载于:https://juejin.im/post/5cfc4addf265da1bcf5dce76

猜你喜欢

转载自blog.csdn.net/weixin_34129696/article/details/91428164