python爬取app中的音频_喜马拉雅app 爬取音频文件

============== 2019-10-28更新 =================

因为喜马拉雅的源码格式改了,所以爬虫代码也更新了一波

# -*- coding: utf-8 -*-

# website: http://30daydo.com

# @Time : 2019/6/30 12:03

# @File : main.py

import requests

import re

import os

url = 'http://180.153.255.6/mobile/v1/album/track/ts-1571294887744?albumId=23057324&device=android&isAsc=true&isQueryInvitationBrand=true&pageId={}&pageSize=20&pre_page=0'

headers = {'User-Agent': 'Xiaomi'}

def download():

for i in range(1, 3):

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

js_data = r.json()

data_list = js_data.get('data', {}).get('list', [])

for item in data_list:

trackName = item.get('title')

trackName = re.sub('[\/\\\:\*\?\"\\|]', '_', trackName)

# trackName=re.sub(':','',trackName)

src_url = item.get('playUrl64')

filename = '{}.mp3'.format(trackName)

if not os.path.exists(filename):

try:

r0 = requests.get(src_url, headers=headers)

except Exception as e:

print(e)

print(trackName)

r0 = requests.get(src_url, headers=headers)

else:

with open(filename, 'wb') as f:

f.write(r0.content)

print('{} downloaded'.format(trackName))

else:

print(f'{filename}已经下载过了')

import shutil

def rename_():

for i in range(1, 3):

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

js_data = r.json()

data_list = js_data.get('data', {}).get('list', [])

for item in data_list:

trackName = item.get('title')

trackName = re.sub('[\/\\\:\*\?\"\\|]', '_', trackName)

src_url = item.get('playUrl64')

orderNo=item.get('orderNo')

filename = '{}.mp3'.format(trackName)

try:

if os.path.exists(filename):

new_file='{}_{}.mp3'.format(orderNo,trackName)

shutil.move(filename,new_file)

except Exception as e:

print(e)

if __name__=='__main__':

rename_()

音频文件也更新了,详情见百度网盘。

======== 2018-10=============

爬取喜马拉雅app上 杨继东的投资之道 的音频文件

运行环境:python3# -*- coding: utf-8 -*-

# website: http://30daydo.com

# @Time : 2019/6/30 12:03

# @File : main.py

import requests

import re

url = 'https://www.ximalaya.com/revision/play/album?albumId=23057324&pageNum=1&sort=1&pageSize=60'

headers={'User-Agent':'Xiaomi'}

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

js_data = r.json()

data_list = js_data.get('data',{}).get('tracksAudioPlay',)

for item in data_list:

trackName=item.get('trackName')

trackName=re.sub(':','',trackName)

src_url = item.get('src')

try:

r0=requests.get(src_url,headers=headers)

except Exception as e:

print(e)

print(trackName)

else:

with open('{}.m4a'.format(trackName),'wb') as f:

f.write(r0.content)

print('{} downloaded'.format(trackName))

保存为main.py

然后运行 python main.py

稍微等几分钟就自动下载好了。

附下载好的音频文件:

链接:https://pan.baidu.com/s/1t_vJhTvSJSeFdI1IaDS6fA

提取码:e3zb

原创文章

转载请注明出处

http://30daydo.com/article/503

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值