1、主程序文件import os

import json

import requests

from contextlib import closing

from progressbar import ProgressBar

from down_line import ProgressBar

# start_url = 'https://www.ximalaya.com/revision/play/album?albumId=' \

# '3595841&pageNum={}&sort=-1&pageSize=30'

# 3595841 分类ID

# pageNum={} 分页码

# 运行主目录程序

def xi_ma():

# 找URL

start_url = 'https://www.ximalaya.com/revision/play/album?albumId=' \

'9723091&pageNum={}&sort=-1&pageSize=30'

# 解析url 得到的网页

# 增加header头 简单的反扒技术

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '

'(KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'

}

for i in range(2):

url = start_url.format(i + 1) # 翻页效果相当于提交分页,也就是下一页

print(url)

# 提交网址

r = requests.get(url, headers=headers)

# 获取数据

ret = r.content.decode('utf-8')

# 转换JSON格式

result = json.loads(ret)

# 遍历测试结果

for i in result['data']['tracksAudioPlay']:

# print(i['trackName'], '' + i['src'])

src = i['src']

name = i['trackName']

# 保存数据

# with open('./img/{}.m4a' .format(name), 'ab') as f:

# f.write(music.content)

with closing(requests.get(src, headers=headers, stream=True)) as response:

chunk_size = 1024

content_size = int(response.headers['content-length'])

progress = ProgressBar(name, total=content_size, unit='KB', chunk_size=chunk_size,

run_status='正在下载', fin_status='下载完毕')

if not os.path.exists('img'):

os.mkdir('img')

with open('./img/{}.m4a' .format(name), 'ab') as file:

for data in response.iter_content(chunk_size=chunk_size):

file.write(data)

progress.refresh(count=len(data))

if __name__ == '__main__':

xi_ma()

2.down_lin source 源代码 下载进度条

1 class ProgressBar(object):

2

3 def __init__(self, title,

4 count=0.0,

5 run_status=None,

6 fin_status=None,

7 total=100.0,

8 unit='', sep='/',

9 chunk_size=1.0):

10 super(ProgressBar, self).__init__()

11 self.info = "【%s】%s %.2f %s %s %.2f %s"

12 self.title = title

13 self.total = total

14 self.count = count

15 self.chunk_size = chunk_size

16 self.status = run_status or ""

17 self.fin_status = fin_status or "" * len(self.status)

18 self.unit = unit

19 self.seq = sep

20

21 def __get_info(self):

22 # 【名称】状态 进度 单位 分割线 总数 单位

23 _info = self.info % (self.title, self.status,

24 self.count/self.chunk_size, self.unit, self.seq, self.total/self.chunk_size, self.unit)

25 return _info

26

27 def refresh(self, count=1, status=None):

28 self.count += count

29 # if status is not None:

30 self.status = status or self.status

31 end_str = "\r"

32 if self.count >= self.total:

33 end_str = '\n'

34 self.status = status or self.fin_status

35 print(self.__get_info(), end=end_str)

36

python 背景音乐程序代码_python 喜马拉雅 音乐下载 演示代码相关推荐

  1. python 喜马拉雅 音乐下载 演示代码

    python 喜马拉雅 音乐下载 演示代码 1.主程序文件 import os import jsonimport requests from contextlib import closing fr ...

  2. python音乐下载_python 音乐下载演示源代码

    import requests import re api = 'http://music.taihe.com/search?' header = { 'User-Agent': 'Mozilla/5 ...

  3. python 音乐下载演示源代码

    python 音乐下载演示源代码 import requests import reapi = 'http://music.taihe.com/search?' header = {'User-Age ...

  4. python 背景音乐程序代码_python中加背景音乐如何操作

    在python中加背景音乐的方法: 1.导入pygame资源包: 2.修改音乐的file路径: 3.使用init()方法进行初始化: 4.使用load()方法添加音乐文件: 5.使用play()方法播 ...

  5. python爬虫爬取网易云音乐下载_Python爬虫实践-网易云音乐!没有版权又如何!照样爬取!...

    1.前言 最近,网易的音乐很多听不到了,刚好也看到很多教程,跟进学习了一下,也集大全了吧,本来想优化一下的,但是发现问题还是有点复杂,最后另辟捷径,提供了简单的方法啊! 本文主要参考 python编写 ...

  6. python音乐下载器安装_python实现音乐下载器

    本文实例为大家分享了python音乐下载器的具体代码,供大家参考,具体内容如下 import requests import urllib import json from tkinter impor ...

  7. python游戏程序编码_python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)...

    最近研究了下迷宫的生成算法,然后做了个简单的在线迷宫游戏.游戏地址和对应的开源项目地址可以通过上面的链接找到.开源项目中没有包含服务端的代码,因为服务端的代码实在太简单了.下面将简单的介绍下随机迷宫的 ...

  8. Python:用tkinter制做一个音乐下载小软件

    人生苦短,我用Python 平常我们下载的歌曲,都是各种妖魔鬼怪的格式横行,想下载下来用一下都不行,还只能在它的播放器内听,这谁受得了~ 学Python是用来干嘛的? 当然是解决问题咯~ 于是我直接写 ...

  9. 创建音乐下载器-代码实现

    VIP音乐下载,播放 在我们听歌的时候,总是被各种会员的限制,导致无法听到完整的音乐.当然有的人单单喜欢通过软件去听歌,这里面有很多优质评论可以看.但是当我们想下载一首歌的时候,不是会员就没有办法实现 ...

最新文章

  1. 让ie8、ie9支持媒体查询
  2. Java联网技术之一HTTP
  3. ad中电容用什么封装_用什么来降低噪声?只要几个电容器就可以,简单有效!...
  4. 大数据学习(09)--Hadoop2.0介绍
  5. 离群点检测方法_干货 :时间序列异常检测
  6. 1-5:学习shell之命令的使用
  7. 使用 Xshell 连接矩池云 GPU服务器
  8. 作为多年 PHP 的开发者,在使用了 Go 语言之后......
  9. 【深度学习】基于卷积神经网络(tensorflow)的人脸识别项目(四)
  10. 北塔曾经很张狂 如今沉默为哪桩
  11. openlayers3 ol3热力图 json
  12. 计算机组成与系统结构期末复习 第二章 2.2
  13. 【线性代数】矩阵的初等变换与线性方程组
  14. 【kimol君的无聊小发明】—用python写论文下载器
  15. 【转】C 语言吧 · 问题资料大全【转】
  16. python绘制动态心电图_东软医院收费端使用手册.doc
  17. oled屏幕和amoled有什么区别,哪个好?
  18. 关于WPF(二)XAML
  19. 虾皮店铺有哪些涨粉方法?知虾数据教你八招快速涨粉技巧
  20. linux中的21是什么

热门文章

  1. 勤哲EXCEL服务器财务进销存系统
  2. 用AI「复活」逝者:「深度怀旧」项目火遍推特,我们也用民国老照片试了下 #蚂蚁呀嘿
  3. 中国都市女性抗衰洞察:Z世代抗衰意识普遍觉醒,“纹”题成抗衰重点
  4. 微信小程序项目源码springboot在线考试系统小程序+后台管理系统|前后分离VUE.js
  5. SQL解决Error converting data type nvarchar to numeric.
  6. 2022年京东双11和天猫双11预售时间介绍
  7. 线性回归和卡方分布与方差分析
  8. CMU-MOSEI数据集解读
  9. 2019复旦大学计算机分数线,复旦大学2019年各省各批次录取分数线和招生专业
  10. LANDESK操作系统部署时,怎么默认恢复到客户端C盘配置