ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-11-27 23:31:38  阅读:194  来源: 互联网

标签:title Python 笔记 url json 广播剧 mp3 time id


  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. 结果如下
    在这里插入图片描述
    在这里插入图片描述

标签:title,Python,笔记,url,json,广播剧,mp3,time,id
来源: https://blog.csdn.net/hahalan/article/details/121585411

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有