搜索老郭的单口相声,打开检查模式,刷新

没有什么有价值的东东, 不过....清掉内容, 点击一个相声,再看看有些什么

是不是发现了些什么

我们来点击这个看看, 首先看一下headers, 这个url是不是看起来很顺眼

再来preview, 或者打开那个Request URL

 怎么样,这个就是网站提供的数据接口了,有了这个接口,我们获取文件就相当方便了
 
# -*- coding:utf-8 -*-
# Author : Niuli
# Data : 2019-03-13 16:08 import requests,os # 数据来源
URL = 'https://www.ximalaya.com/revision/play/album?albumId=9742745&pageNum=1&sort=-1&pageSize=30'
# 伪造请求头
XMLY_HEADER = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3724.8 Safari/537.36'} res = requests.get(URL,headers=XMLY_HEADER)
res_json = res.json() play_list = res_json['data']['tracksAudioPlay']
ALL_PATH = play_list[0]['albumName'] # 创建本地专辑文件夹
os.system(f'mkdir -p {ALL_PATH}/MUSIC')
os.system(f'mkdir -p {ALL_PATH}/COVER') MUSIC_PATH = ALL_PATH + '/MUSIC'
COVER_PATH = ALL_PATH + '/COVER' for i in play_list:
# print(i['trackName'])
# print(i['trackCoverPath'])
# print(i['src']) # 获取文件信息 (标题 音乐路径 图片路径)
url_title = i['trackName']
url_music_path = i['src']
url_cover_path = 'https:' + i['trackCoverPath'] # 下载保存音乐文件
music_file = requests.get(url_music_path) # 下载文件
local_music_path = os.path.join(MUSIC_PATH,f'{url_title}.mp3') # 保存路径+文件名+后缀
# 写入音乐文件
with open(local_music_path,'wb') as f:
f.write(music_file.content) # 下载保存图片信息
cover_file = requests.get(url_cover_path) # 下载文件
local_cover_path = os.path.join(COVER_PATH,f'{url_title}.jpg') # 保存路径+文件名+后缀
# 写入图片文件
with open(local_cover_path, 'wb') as f:
f.write(cover_file.content)

同理可以获取其他音频咯

python爬虫简单代码爬取郭德纲单口相声的更多相关文章

  1. 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

    原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...

  2. Python爬虫实例:爬取猫眼电影——破解字体反爬

    字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的. 现在貌似不少网 ...

  3. Python爬虫实例:爬取豆瓣Top250

    入门第一个爬虫一般都是爬这个,实在是太简单.用了 requests 和 bs4 库. 1.检查网页元素,提取所需要的信息并保存.这个用 bs4 就可以,前面的文章中已经有详细的用法阐述. 2.找到下一 ...

  4. Python爬虫教程-17-ajax爬取实例(豆瓣电影)

    Python爬虫教程-17-ajax爬取实例(豆瓣电影) ajax: 简单的说,就是一段js代码,通过这段代码,可以让页面发送异步的请求,或者向服务器发送一个东西,即和服务器进行交互 对于ajax: ...

  5. Python爬虫实例:爬取B站《工作细胞》短评——异步加载信息的爬取

    很多网页的信息都是通过异步加载的,本文就举例讨论下此类网页的抓取. <工作细胞>最近比较火,bilibili 上目前的短评已经有17000多条. 先看分析下页面 右边 li 标签中的就是短 ...

  6. python爬虫-基础入门-爬取整个网站《3》

    python爬虫-基础入门-爬取整个网站<3> 描述: 前两章粗略的讲述了python2.python3爬取整个网站,这章节简单的记录一下python2.python3的区别 python ...

  7. python爬虫-基础入门-爬取整个网站《2》

    python爬虫-基础入门-爬取整个网站<2> 描述: 开场白已在<python爬虫-基础入门-爬取整个网站<1>>中描述过了,这里不在描述,只附上 python3 ...

  8. python爬虫-基础入门-爬取整个网站《1》

    python爬虫-基础入门-爬取整个网站<1> 描述: 使用环境:python2.7.15 ,开发工具:pycharm,现爬取一个网站页面(http://www.baidu.com)所有数 ...

  9. Python 爬虫入门之爬取妹子图

    Python 爬虫入门之爬取妹子图 来源:李英杰  链接: https://segmentfault.com/a/1190000015798452 听说你写代码没动力?本文就给你动力,爬取妹子图.如果 ...

随机推荐

  1. PMP:5.项目范围管理

    项目范围管理包括确保项目做且只做所需的全部工作,以成功完成项目的各个过程. 管理项目范围主要在于定义和控制哪些工作应该包括在项目内,哪些不应该包括在项目内.   核心概念: 规划范围管理:为记录如何定 ...

  2. delphi如何在form显示出来后处理指定的事件(例如自动登录)

    最近写一个delphi客户端,遇到一个自动登录问题,已经解决了思路如下: 1.在Form的oncreate事件中读取用户配置文件,检查及处理是否保存了用户密码,是否自动登录,如果需要自动登录, 自动登 ...

  3. shell 文件操作

      序   在linux平台下开发,我们经常会接触到一些任务性质的工作,而处理方式多样化.现积累各个案例.   从远程服务器拉取文件到本地服务器   scp work@cp01-xx-dev.com: ...

  4. JS应用实例2:轮播图

    在学习轮播图之前,要先会切换图片: 找三张图片,命名1.jpg,2.jpg,3.jpg 示例: <!DOCTYPE html> <html> <head> < ...

  5. 微信开发-PC调试-JS-SDK功能之分享功能调试

    一般涉及和第三方的开发调试,都会比较麻烦些.不过,像微信这样的大公司呢,产品技术是过硬的,所以,基本上只要自己把文档看仔细了,弄好了,基本就没有问题了. 对于后端接口一类的调试,主要就是通过打印访问日 ...

  6. LeetCode--No.008 String to Integer (atoi)

    8. String to Integer (atoi) Total Accepted: 112863 Total Submissions: 825433 Difficulty: Easy Implem ...

  7. POJ 2909

    #include<iostream> #include<stdio.h> #define M 35000 #include<math.h> #define N 38 ...

  8. for(var i=0;i<=3;i++){ setTimeout(function() { console.log(i) }, 10);}

    for(var i=0;i<=3;i++){ setTimeout(function() {  console.log(i)  }, 10);} 答案:打印4次4 这道题涉及了异步.作用域.闭包 ...

  9. Cookie的存储、获取、删除操作

    var Cookie={ set: function (name, value, days) { var d = new Date; d.setTime(d.getTime() + 24*60*60* ...

  10. MD5加密之提取文件的MD5特征码

    public static String encodeFile(String path) { try { MessageDigest digester = MessageDigest.getInsta ...