温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
  • 忘记密码?
登录注册×
获取短信验证码
其他方式登录
点击 登录注册 即表示同意 《亿速云用户服务条款》
  • 服务器
  • 数据库
  • 开发技术
  • 网络安全
  • 互联网科技
登 录 注册有礼
最新更新 网站标签 地图导航
产品
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • 基于python实现的百度音乐下载器python pyqt改进版(附代码)

基于python实现的百度音乐下载器python pyqt改进版(附代码)

发布时间:2020-09-30 03:46:21 来源:脚本之家 阅读:203 作者:风的姿态 栏目: 开发技术

前言

之前写过一个用python实现的百度新歌榜、热歌榜下载器的文章,实现了百度新歌、热门歌曲的爬取与下载。但那个采用的是单线程,网络状况一般的情况下,扫描前100首歌的时间大概得到40来秒。而且用Pyqt做的界面,在下载的过程中进行窗口操作,会出现UI阻塞的现象。

前两天有时间调整了一下,做了几方面的改进:

1.修改了UI界面阻塞的问题,下载的过程中可以进行其它的UI操作;

2.爬虫程序采用一个主线程,8个子线程的方式快速爬取,网络状况一致的情况下,将扫描100首歌曲的时间提高到了8、9秒左右;(本地下载速度大概300K左右)

3.解析网页的方法由之前的HtmlParser变成了现在的BeautifulSoup;

要运行此功能需要安装PyQt、BeautifulSoup。运行之前需要在settings.py文件中配置百度账号和密码。

username = "your baidu acount" #配置你的百度账号 
password = "your baidu password" #配置你的百度密码 

配置好账户和密码后,直接双击spiderMan.py文件运行即可。

运行流程

1.首先由spiderMan.py进入主程序,开始运行。

2.主程序将控制权交给dispatcher调度程序,调度程序首先登录百度。

3.如果登录成功,调度程序开启8个子线程,由这8个子线程抓取百度新歌榜或百度热歌榜的歌曲链接,分析链接,获取真正的下载地址,并将下载地址、歌曲名称、歌手信息写入一个文本文件。

4.当子线程执行完毕,主程序读取上一步生成的文本文件,加载UI窗体。

整个过程如下图:

基于python实现的百度音乐下载器python pyqt改进版(附代码)

正常运行后的效果如下图:

基于python实现的百度音乐下载器python pyqt改进版(附代码)

问题:

在github上tigerstudent提出了两个问题:

1.文件spiderMan.py中获取当前脚本所在的目录 root = os.path.dirname(__file__)+"/" 获取到的目录为空,建议应该用os.getcwd()。

这里我实际想要的是当前脚本所在的绝对路径,正确的脚本应该是这样的:os.path.abspath(os.path.dirname(__file__))+"/"

那么为什么os.path.dirname(__file__)os.getcwd()为什么都不行呢?os.path.dirname(__file__)是当前脚本相对于脚本的执行目录的相对路径,而os.getcwd()是脚本实际执行的目录。新建test.py文件,代码如下:

import os 
print("os.path.dirname(__file__):"+os.path.dirname(__file__)) 
print("os.getcwd():"+os.getcwd()) 

首先定位到计算机根目录/,执行如下命令:python /home/fengzheng/vimPython/BaiduMusicSpider-master/test.py,输出结果:

os.path.dirname(__file__):/home/fengzheng/vimPython/BaiduMusicSpider-master 
os.getcwd(): 

 定位到/home/fengzheng/vimPython/,执行如下命令:python BaiduMusicSpider-master/test.py,输出结果:

os.path.dirname(__file__):BaiduMusicSpider-master 
os.getcwd():/home/fengzheng/vimPython 

这样说吧,抛开执行上的参数值,在windows下把命令理解为单击鼠标直接运行的操作,os.path.dirname(__file__)就是所执行的脚本文件对于当前所处的目录的相对路径,而os.getcwd()就是当前执行这个脚本所在的路径,即在哪个位置执行就是那个位置的路径。

2.有一些路径字符串中用的是”\”,正确的写法应该是”/”,因为当时是在windows上写的,没太注意。

github下载地址如下:下载地址

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。

向AI问一下细节
推荐阅读:
  1. Python实现剪刀石头布小游戏
  2. python实现人机五子棋

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python 百度音乐 下载器
  • 上一篇新闻:
    bootstrap配合Masonry插件实现瀑布式布局
  • 下一篇新闻:
    jQuery-ui插件sortable实现自由拖动排序

猜你喜欢

  • win10显示器输入不支持黑屏如何解决
  • win10应用商店无法下载应用如何解决
  • nlp自然语言处理包括有哪些特点
  • java嵌入式数据库有哪些
  • mysql新建用户并授权的方法是什么
  • eclipse怎么安装并配置svn插件
  • windows7安全证书过期怎么解决
  • win10应用商店进不去如何解决
  • android依赖注入的实现方式是什么
  • tomcat运行乱码如何解决
最新资讯
  • DB2在Linux中的自动化运维
  • iterate在数据清洗任务中的实践
  • iterate在分布式数据库中的应用
  • DB2与Linux操作系统的监控整合
  • DB2与Linux系统日志的整合与分析
  • Linux环境下DB2数据库的备份恢复性能优化
  • Linux环境下DB2数据库的备份验证策略
  • Linux下DB2配置技巧揭秘
  • Linux环境中DB2数据库的备份加密实践
  • MyBatis iterate与动态表结构的适应性
相关推荐
  • Python如何实现按钮的响应事件
  • python中Selenium如何实现付费音乐批量下载
  • python实现可视化界面的方法
  • 利用Python实现下载功能的方法有哪些
  • 使用python实现三维图可视化的案例
  • 如何使用Python通过获取剪切板数据实现百度划词搜索功能
  • Python编程如何实现下载器自动爬取采集B站弹幕
  • PyQt5如何实现百度图片下载器GUI界面
  • python中装饰器信号与槽的示例分析
  • 如何用Python实现一个轮盘抽奖功能

相关标签

python编程 python编程快速上手 python包 python版本 python魔法方法 python视频 python3.9 python数据类型 python3.5.2 python面试 python 文件操作 python升级 python 学习 python切片 python模拟 python map python pycharm python线程池threadpool python3正则 python游戏
AI

深圳SEO优化公司南海网站优化行业武昌网站快照优化哪家服务好网站自然优化方案金牛区网站优化哪家好网站推广优化钢然扌云速捷如何做好外贸网站优化老城区网站优化推广网站优化哪家专业黄石工厂网站优化多少钱不同类型网站优化潮州专业网站优化公司德阳网站优化施秉县网站优化公司鹤岗哈尔滨网站推广优化宣城做网站优化哪家专业麻城网站权重优化威海荣成乳山文登网站优化推广盐城放心的网站优化沧州网站关键字优化南京网站关键字优化价格上海网站优化推广公司柘城网站优化推广seo公司巩义网站优化找哪家东莞网站排名优化工具网站优化概念分类惠阳网站优化报价镇海区网站优化企业温州企业网站排名优化机构新市区网站seo优化排名外推网站代码优化是什么意思歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化