Python教程

Python学习笔记_获取猫耳广播剧

本文主要是介绍Python学习笔记_获取猫耳广播剧,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  1. 找到对应想要学习的地址,比如:https://www.missevan.com/mdrama/19255
  2. 进入对应地址后,键盘按F12或者鼠标‘右键-检查’,重新加载页面后,将鼠标分别点NetworkFetch/XHR。点Network是为了获取当前此次页面的加载都有哪些行为,点Fetch/XHR是为了获取当前广播剧对应的所有剧集id(不必登录或者挨个去对应的第几集去下载)
    在这里插入图片描述
  3. 从Network中分析到,Fetch/XHR中的地址:https://www.missevan.com/dramaapi/getdrama?drama_id=19255可以获取到全部剧集id,所以我们从这个地址开始遍历
  4. 参考代码如下:
import time
import requests
import json


def get_html(url):
    response = requests.get(url)
    return response


def parse(response):
    json_data = response.json()
    title = json_data['info']['sound']['soundstr']
    soundurl = json_data['info']['sound']['soundurl']
    return title, soundurl


def save(title, mp3_data):
    path = r'D:\pythonData\MaoEr\ '  # 地址后面要带一个空格,否则报错
    with open(path + title + '.mp3', mode='wb') as f:
        f.write(mp3_data)
        print('当前时间为:', time.time(), '当前剧集《', title, '》下载完成!!!')


start_time = time.time()
print('开始了:', start_time)

# 当前广播剧页面对应的url:https://www.missevan.com/mdrama/19255(在组成当前显示页面的内容中,全部剧集列表的请求url却是以下)
url = 'https://www.missevan.com/dramaapi/getdrama?drama_id=19255'
allDramaInfo = get_html(url).text

# 请求之后 ,返回的是json数据需要处理,拿到剧集id
jsonStr = json.loads(allDramaInfo)
episodes = jsonStr['info']['episodes']['episode']
# 根据id去挨个获取下载内容
for episode in episodes:
    sound_id = episode['sound_id']
    mp3_url = 'https://www.missevan.com/sound/getsound?soundid=' + str(sound_id)
    resp_2 = get_html(mp3_url)
    title, soundurl = parse(resp_2)
    # 请求音频url地址 音频 二进制数据 content
    mp3_data = get_html(soundurl).content
    # 下载保存 到本地
    save(title, mp3_data)
print('结束了,一共花费了:', time.time() - start_time, '秒')

  1. 结果如下
    在这里插入图片描述
    在这里插入图片描述
这篇关于Python学习笔记_获取猫耳广播剧的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!