Python採集喜馬拉雅的音頻,隨時隨地,聽我想聽

前言

文的文字及圖片來源於網絡,僅供學習、交流使用,不具備任何商業用途,版權歸原做者全部,若有問題請及時聯繫咱們以做處理。python

PS:若有須要Python學習資料的小夥伴能夠加點擊下方連接自行獲取json

http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef瀏覽器

喜馬拉雅FM是專業的音頻分享平臺,聚集了有聲小說,有聲讀物,有聲書, 兒童睡前故事,相聲小品,鬼故事等數億條音頻。 今天咱們一塊兒學習如何採集喜馬拉雅的音頻。隨時隨地,聽我想聽。網絡

開發環境:

  1. 版 本:anaconda5.2.0(python3.6.5)編輯器

  2. 編輯器:pycharm學習

相關模塊:url

import requests
import pprint
import re

實現效果

在這裏插入圖片描述 在這裏插入圖片描述

完整代碼

import requests
import pprint
import re

"""批量下載 找到規律"""

# 塊註釋
"""使用接口 傳入音頻的id 獲取音頻的下載地址"""

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'
}


def download_media(song_id, sond_name):
    # 選擇 tab shift+tab撤銷縮進
    """根據songid name"""
    media_url = 'https://www.ximalaya.com/revision/play/v1/audio?id=' + song_id + '&ptype=1'
    # 僞造瀏覽器的身份
    response = requests.get(media_url, headers=headers)
    # 我是python請求的
    # print(response.request.headers)
    # 字典類型
    data = response.json()
    # print(data)
    # pprint.pprint(data)
    # 格式化打印 漂亮的數據 只要會用就好了
    # pprint.pprint(data['data'])
    mp3_url = data['data']['src']

    # 視頻 音頻 圖片 二進制 須要解碼嗎?
    response = requests.get(mp3_url)
    # text 文字 content
    # print(response)
    with open(sond_name + '.m4a', 'wb') as f:
        f.write(response.content)
    print(sond_name, '下載完畢')


# sond_name = '女神的貼身高手 第10集 真正的高手'
# song_id = '98944395'
# download_media(song_id, sond_name)
for i in range(1, 32):
    response = requests.get('https://www.ximalaya.com/youshengshu/16411402/p'+str(i)+'/', headers=headers)
    # print(response.text)
    name_url = re.findall('<div class="text _c2"><a title="(.*?)" href="/youshengshu/16411402/(\d+)">', response.text)
    for i in name_url:
        print(i[0], i[1])
        download_media(i[1], i[0])
相關文章
相關標籤/搜索