2018-7-16 11:10:07 学了多进程再优化一下自己的代码,采用多进程下载,发现速度大有提高,在main() 中修改了一下,放上代码

#!/usr/bin/env python
#!--*--coding:utf-8 --*--
#!@Time    :2018/7/6 12:13
#!@Author   TrueNewBee
#爬取并批量下载网易云歌单歌曲
#根据URL下载音乐  https://music.163.com/#/playlist?id=2269661190import requests
import time
from multiprocessing import Pool
from bs4 import BeautifulSoup
from urllib.request import urlretrieve
from multiprocessing import  Process#1.获取页面源代码
def get_page():"""获取网页源代码(选择自己喜欢的网易云歌单连接)"""# 去掉原链接里面的   #/url ="https://music.163.com/playlist?id=2269661190"#请求头headers ={'Host':'music.163.com','Referer':'https://music.163.com/','User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}#获取网页源代码res = requests.get(url,headers=headers).text#创建对象  解析网页r = BeautifulSoup(res,"html.parser")#2.获取IDmusic_dict = {}#找源代码中的a标签result = r.find("ul",{'class':'f-hide'}).find_all('a')for music in result:music_id = music.get('href').strip("/song?id=")#去掉/song?idmusic_name = music.text #获取其中的文字music_dict[music_id] = music_namereturn music_dict#3.下载歌曲
def download_song(music_dict):"""下载音乐"""for song_id in music_dict:song_url = "http://music.163.com/song/media/outer/url?id=%s.mp3"%song_id#下载地址(地址填写自己的地址)path="C:\\Users\Administrator\Desktop\网易云音乐\\%s.mp3"%music_dict[song_id]#通过键值对来查找歌曲名字#下载音乐  urlretriver (地址  路径)time.sleep(1)urlretrieve(song_url,path)print("下载完成%s"%music_dict[song_id])def  main():music_dict =get_page()#采用了多线程式下载,速度更快了for i in range(3):p = Process(target=download_song,args=(music_dict,))p.start()
if __name__ == '__main__':main()

已经优化过了,有那么一丢丢小小成就感只是用被人的视频看的罢了!不过里面有值得学的地方,就是昨天猫眼使用的正则选取有用东西,而今天的则是用的bs4库里面的

from bs4 import BeautifulSoup      github连接 :https://github.com/TrueNewBee/pythonDemo

r = BeautifulSoup(res,"html.parser")
#2.获取IDmusic_dict = {}#找源代码中的a标签result = r.find("ul",{'class':'f-hide'}).find_all('a')     #这样看着更省事一点,我过会优化一下我的猫眼代码for music in result:music_id = music.get('href').strip("/song?id=")#去掉/song?idmusic_name = music.text #获取其中的文字music_dict[music_id] = music_name

 放上我的所有源代码,我也想放到Github,给谁没有的样

#!/usr/bin/env python
#!--*--coding:utf-8 --*--
#!@Time    :2018/7/6 12:13
#!@Author   TrueNewBee
#爬取并批量下载网易云歌单歌曲
#根据URL下载音乐  https://music.163.com/#/playlist?id=2269661190import requests
import time
from multiprocessing import Pool
from bs4 import BeautifulSoup
from urllib.request import urlretrieve#1.获取页面源代码
def get_page():"""获取网页源代码(选择自己喜欢的网易云歌单连接)"""# 去掉原链接里面的   #/url ="https://music.163.com/playlist?id=2269661190"#请求头headers ={'Host':'music.163.com','Referer':'https://music.163.com/','User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}#获取网页源代码res = requests.get(url,headers=headers).text#创建对象  解析网页r = BeautifulSoup(res,"html.parser")#2.获取IDmusic_dict = {}#找源代码中的a标签result = r.find("ul",{'class':'f-hide'}).find_all('a')for music in result:music_id = music.get('href').strip("/song?id=")#去掉/song?idmusic_name = music.text #获取其中的文字music_dict[music_id] = music_namereturn music_dict#3.下载歌曲
def download_song(music_dict):"""下载音乐"""for song_id in music_dict:song_url = "http://music.163.com/song/media/outer/url?id=%s.mp3"%song_id#下载地址(地址填写自己的地址)path="C:\\Users\Administrator\Desktop\网易云音乐\\%s.mp3"%music_dict[song_id]#通过键值对来查找歌曲名字#下载音乐  urlretriver (地址  路径)time.sleep(1)urlretrieve(song_url,path)print("正在下载%s"%music_dict[song_id])def  main():music_dict =get_page()download_song(music_dict)if __name__ == '__main__':main()

  

转载于:https://www.cnblogs.com/zhen1996/p/9273361.html

7.6批量下载网易云歌曲相关推荐

  1. Python3批量下载网易云音乐热歌榜

    Python3批量下载网易云音乐热歌榜 可以批量下载网易云音乐热歌榜的歌曲,可以自己设定数量,速度非常快. https://music.163.com/#/discover/toplist?id=37 ...

  2. python爬取并下载代码_python 爬取并批量下载网易云歌单源代码

    #!/usr/bin/env python#!--*--coding:utf-8 --*-- #![url=home.php?mod=space&uid=238618]@Time[/url]  ...

  3. python免费下载歌曲_实现python批量下载网易云音乐的免费音乐

    python视频教程栏目介绍实现下载免费音乐 相关免费学习推荐:python视频教程 运行效果 代码# -*- coding:utf-8 -*- import requests, hashlib, s ...

  4. python下载歌曲教程视频_实现python批量下载网易云音乐的免费音乐

    python视频教程栏目介绍实现下载免费音乐 运行效果 代码# -*- coding:utf-8 -*- import requests, hashlib, sys, click, re, base6 ...

  5. Python下载网易云歌曲(版权限制的怎么播放和下载呢?) 1

    为什么要这样下载 网易云音乐,我相信大多数人都用过,我个人觉得非常好用,也一直在用,有的时候,我们搜索一些网易歌曲,发现播放不了,甚至下载不了,因为提示"版权方要求,当前歌曲仅限开通音乐包使 ...

  6. 爬虫搜索并下载网易云歌曲

    首先展示下成果 过程中使用到的知识:selenium,request,正则表达式, # author:浸 # time:2021/1/31 10:07 # file:WyyMusic.py # use ...

  7. 基于Python3爬取并下载网易云歌曲!

    引子:记得高中的时候,一位同桌是五月天的超级粉丝,一下课就大声哼唱(丝毫不在意旁边人的感受,哈哈),刚开始还挺烦的(我下课要赶紧补觉),后来也就慢慢的习惯了,以至于五月天的歌曲成为了记忆中青涩而又躁动 ...

  8. 怎么用python下载网易云_实现python批量下载网易云音乐的免费音乐

    python视频教程栏目介绍实现下载免费音乐 相关免费学习推荐:python视频教程 运行效果 代码# -*- coding:utf-8 -*- import requests, hashlib, s ...

  9. Python批量下载网易云音乐飙升榜所有音乐文件

    Python小屋刷题神器最近升级的新功能介绍 推荐教材:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社,2018.8出版,2021.3第 ...

  10. python批量下载网易云音乐的免费音乐

    python视频教程栏目介绍实现下载免费音乐 相关免费学习推荐:python视频教程 运行效果 代码 # -*- coding:utf-8 -*-import requests, hashlib, s ...

最新文章

  1. 可以卸载什么程序来对计算机进行瘦身,电脑越来越卡了,教你一分钟让电脑瘦身(C盘哪些文件可以删除)-怎么清理电脑内存...
  2. JSPServlet学习手册
  3. python给视频加水印_视频水印_Python SDK_服务端SDK_视频点播 - 阿里云
  4. 黑盒测试 ------ 等价类划分法
  5. Oracle 甩手 Java EE,Eclipse 基金会成新东家
  6. matlab2c使用c++实现matlab函数系列教程-max函数
  7. 手游游戏源码2000套已测
  8. Windows系统安装运行库
  9. delphi 发送html邮件,Delphi下html编辑器,像foxmail或者Outlook的邮件编辑器一样 能够保存为单一文件如 mht,eml (200分)...
  10. [Photography] 还是DPP好!
  11. android控制电脑,安卓手机远程控制电脑教程详解
  12. 达梦数据库建表语句之create table as select 注意事项
  13. Could not transfer artifact问题
  14. 有趣--等额本息还款
  15. 漫谈程序员系列 软件开发的十八般乐趣
  16. 3年过去了!翟天临的微博又被写论文的研究生们喷了个底朝天...
  17. AR体感互动产品大合集
  18. 有关shape文件的说明
  19. 【计算机网络】计算机网络
  20. xss获取键盘记录实验演示

热门文章

  1. 再见了,我的黄色文件夹(内置福利)
  2. 20.P153课后习题6-13 背包问题。设有一个背包可以放入物品的重量为s,现有n件物品,重量分别为w[0],w[1],...w[n-1]。问题是能否从这n件物品中选择若干件放入此背包中使得放入的重
  3. 【记录】一个自动投票的小程序(python实现)
  4. 使用远程virt-manager安装虚拟机的步骤
  5. 家用无线路由器WDS初始化失败解决方法
  6. NetworkX中文使用手册
  7. Cannot connenct to relay host smtp.163.com (php邮件发送失败)
  8. HDUOJ 5651 xiaoxin juju needs help
  9. 部分PTA的入门习题以及题解
  10. 关于高德地图的分析报告