欢迎光临UUpython
最大、最新、最全的Python代码收集站

喜马拉雅音频下载

这段代码是一个用于下载喜马拉雅音频的脚本,它首先发送一个GET请求获取特定链接上的页面内容,然后使用正则表达式从页面内容中提取音频的id和标题,再使用提取到的id获取音频的URL并下载到本地。以下是代码的完整版本:

import requests
import re

# 需要下载音乐的链接
link = 'https://www.ximalaya.com/album/68607356'
# 设置请求头,模拟浏览器访问
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
}  
# 发送GET请求,获取网页的响应
response2 = requests.get(url=link, headers=headers).text  

# 使用正则表达式提取音乐的id和标题
pattern = r'"index":\d+,"trackId":(?P<id>\d+),"isPaid":false,"tag":0,"title":"(?P<title>.*?)"'
trackid = re.compile(pattern)
result = trackid.finditer(response2)

# 遍历匹配结果,获取音乐id和标题
for item in result:
    id = item.group('id')
    title = item.group('title')
    url = f'https://www.ximalaya.com/revision/play/v1/audio?id={id}&ptype=1'
    response = requests.get(url=url, headers=headers)
    data_list = response.json()
    src_url = data_list['data']['src']
    print(title, src_url)

    # 下载音乐文件
    music = requests.get(url=src_url, headers=headers).content

    # 将音乐文件保存到本地的'video'目录下
    with open('video\\' + title + '.m4a', mode='wb') as f:
        f.write(music)
        print('音频下载完成:', title)

需要注意以下几点:

  1. 代码使用正则表达式从页面内容中提取音频的id和标题,这种方法对于页面结构变化较大的情况可能会出现问题,建议考虑使用更稳定的方法,比如使用BeautifulSoup来解析页面。
  2. 代码中使用了喜马拉雅的API来获取音频的URL,这种方式比直接解析页面更稳定,但请注意喜马拉雅的API使用规则,避免滥用。
  3. 代码中使用headers模拟浏览器访问,这可以防止一些网站的反爬虫机制,但仍然需要注意尊重网站的使用规则。
  4. 代码中将音频保存在’video’目录下,如果你的工作目录中没有这个目录,需要先创建。

最后,请确保你的爬取行为是合法、合规的,并且尊重网站的使用条款。

赞(0) 打赏
未经允许不得转载:UUpython » 喜马拉雅音频下载
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!