设为首页 收藏本站
查看: 1247|回复: 0

[经验分享] 用python实现的百度新歌榜、热歌榜下载器

[复制链接]

尚未签到

发表于 2015-4-21 13:11:50 | 显示全部楼层 |阅读模式
  首先声明,本工具仅仅为学习之用,不涉及版权问题,因为百度音乐里面的歌曲本身是可以下载的,而且现在百度也提供了”百度音乐播放器”,可以通过这个工具进行批量下载。
  我当时做这个工具的时候,百度还没有提供”百度音乐播放器”,而我又想批量下载,所以做了这样的一个下载工具。当然,主要还是为了学习。
  工具采用Python2.7.3+PyQt开发。

功能:
  1.集中展示百度新歌榜或热歌榜可下载的歌单。
  2.支持单个、多个歌曲的下载。
  3.可复制歌单中所有的链接内容,方便在迅雷等下载工具中创建下载组。

缺陷:
  目前采用单线程,效率不高,UI界面容易假死。

本工具运行流程:
  1.模拟用户登录百度。
  2.若登录成功,采集并解析页面内容,加载歌单列表。
  3.用户点击下载按钮或者批量下载按钮后,下载歌曲。
  
DSC0000.png

使用方法:
  1.在配置文件setting.py的最后,配置可登录百度的账号和密码,及百度热歌榜或新歌榜的URL.



username = "your baidu acount"    #配置你的百度账号
password = "your baidu password"  #配置你的百度密码
musiclistUrl = "http://music.baidu.com/top/dayhot"  #   http://music.baidu.com/top/new
  2.直接运行mainWindow.py文件即可,如果网速不给力的话可能要等上3、4分钟。
  运行后如图:
DSC0001.jpg
  
  

用到的知识:
  1.首先用到了PyQt的GUI编程,窗体布局及QTableWidget、QProgressBar、QPushButton等控件及控件的重写
  2.用到了网络编程的部分内容,利用urllib,urllib2,cookielib请求网页,模拟登录百度。
  3.利用HTMLParser解析网页内容,匹配网页元素。
  4.利用codecs进行文件的读写。
  

遇到的问题:
  1.编码问题,由于在创建文件时将文件编码设置为UTF-8,当需要向文件写入的内容为中文等非ASCII码内容时,总是提示编码问题。其实,百度音乐的网页全部为UTF-8格式,因此从网页中获取的内容也是UTF-8格式,但是,要讲内容写入UTF-8的文本中,必须将网页内容进行decode(“utf8”)解码为unicode格式,才能正常写入。
  检测内容编码,可以用chardet模块的chardet.detect(“内容”)的方法。
  另外,HTMLParser解析网页内容过程中,有的下载页面会出现问题,根据提示信息发现还是编码问题,将feed()方法中的内容参数进行decode(“utf8”)后,结果正常。
  decode将内容根据参数内容解码为unicode类型,具体要根据所采集的页面的编码。
  
  github下载地址:点这里

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-59267-1-1.html 上篇帖子: python实现的翻译脚本 下篇帖子: Python备份目录及目录下的全部内容
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表