本文主要是介绍Python学习笔记_获取猫耳广播剧,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- 找到对应想要学习的地址,比如:https://www.missevan.com/mdrama/19255
- 进入对应地址后,键盘按F12或者鼠标‘右键-检查’,重新加载页面后,将鼠标分别点Network和Fetch/XHR。点Network是为了获取当前此次页面的加载都有哪些行为,点Fetch/XHR是为了获取当前广播剧对应的所有剧集id(不必登录或者挨个去对应的第几集去下载)
- 从Network中分析到,Fetch/XHR中的地址:https://www.missevan.com/dramaapi/getdrama?drama_id=19255可以获取到全部剧集id,所以我们从这个地址开始遍历
- 参考代码如下:
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, '秒')
- 结果如下
这篇关于Python学习笔记_获取猫耳广播剧的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!