Python3简单爬虫之下载相关类型音乐(喜马拉雅网站)!
一,简单介绍python
1.众所周知,python在近几年可以说是非常火爆,在受欢迎排名上经常位于前列
2017年IEEE Spectrum 最新的研究报告
2018年TIOBE 刚刚发布了 6 月编程语言排行榜
2.百科简单介绍
Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。等等。
3.python优势及推荐视频
Python相对于其他语言有以下的优势:
1、Python易于学习
2、Python让你能用少量的代码构建出更多的功能
3. Python是一门多才多艺的语言,似乎每个领域都可以使用:系统操作,Web开发,部署,科学建模等,大抵找不出第二个更多才多艺的语言了。
4.Python拥有最成熟的程序包资源库之一
5.Python在数据科学领域被广泛使用
Python教学视频:
1. 腾讯课堂上的马哥教育视频
2. 廖雪峰的python教程网站
3. B站上的python视频(小甲鱼零基础入门学习)
4. 有问题也可以上博客知乎等查找资料
二,爬虫过程(抓取喜马拉雅网站的音乐并下载在文件夹上)
1.实验环境
win10,pycharm,python3.6,火狐浏览器
2.添加相关库
打开pycharm
点击设置
点击项目解释器,再点击右边+号
搜索相关库并添加,例如:requests
新建文件
用火狐浏览器打开喜马拉雅网站,再点击音乐,可以得到喜马拉雅音乐模块的url
点击流行和摇滚,我们可以观察并发现https://www.ximalaya.com/yinyue/与搜索内容拼音组合即使是搜索结果的url
然后我们发现未点击播放时抓取的信息的页面:
点击播放后的页面:
所以我们会发现多出get方法的一个json文件
观察上面两张图片:浏览这个json
并在浏览器打开这个网址:
https://www.ximalaya.com/revision/play/album?albumId=391242&pageNum=1&pageSize=30
观察可知,可以看到albumId,还有音频文件url:
"http://audio.xmcdn.com/group12/M03/2C/AA/wKgDW1WJ7GqxuItqAB8e1LXvuds895.m4a"
访问搜索界面的源代码,查找albumId,通过这些albumid获取音频文件的url
最后使用函数urllib.request.urlretrieve()下载音乐
效果如下:
文件夹里下载好的歌曲:
具体代码:
import requests import re #正则表达式 import urllib #下载音乐的库 from pypinyin import pinyin, lazy_pinyin import pypinyin #转为拼音的库 header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0'} ##伪装成浏览器def Pinyin(search): #输入要查找的内容0l=lazy_pinyin(search) #字符串转化为拼音str1 = "".join(l)return str1def SearchHtml(str,header): #获取搜索得到的htmlurl= 'https://www.ximalaya.com/yinyue/'+str#print(url)html=requests.get(url,headers=header)#print(html.status_code)html.encoding=html.apparent_encoding#print(html.text)return html#"albumId":3961176,"title":"六喜珠宝-车载音乐 欧美乡村民谣"def albumId(html): #获取albumId的值 并将albumId与https://www.ximalaya.com/revision/play/album?albumId=组合json的urld=re.findall(r'"albumId":(.*?),',(html).text)url3=[]for x in (d[:1]):url2='https://www.ximalaya.com/revision/play/album?albumId='+xhtml2=requests.get(url2,headers=header) #src "http://audio.xmcdn.com/group12/M03/2C/AA/wKgDW1WJ7GqxuItqAB8e1LXvuds895.m4a"url3=(re.findall(r'"src":"(.*?)"',(html2).text))return url3def title(html):t=re.findall(r'"title":"(.*?)"',(html).text) #获取titile(歌名)的值return tdef Download(url,title): #下载音乐n=0for y in url:try:print("正在下载——"+str(t[n]))urllib.request.urlretrieve(y,r'D:\zachary\喜马拉雅音乐\\'+str(t[n]+'.m4a'))print("下载——"+str(t[n])+"——成功")n=n+1except:print("下载——"+str(t[n])+"——失败")str1=Pinyin('摇滚') html=SearchHtml(str1,header) t=title(html) url3=albumId(html) Download(url3,t)
三,结尾
谢谢各位观看。如有错误的地方,非常欢迎大家通知改正。谢谢。
源码获取加群:1136192749
Python3简单爬虫之下载相关类型音乐(喜马拉雅网站)!相关推荐
- Python3简单爬虫之下载相关类型音乐(喜马拉雅网站)
一,简单介绍python 1.众所周知,python在近几年可以说是非常火爆,在受欢迎排名上经常位于前列 2017年IEEE Spectrum 最新的研究报告 2018年TIOBE 刚刚发布了 6 月 ...
- 第一个简单爬虫之下载小说
仅做学习用途!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 看小说请支持正版!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 做了 ...
- Python3简单爬虫:爬取猫眼评分top100电影
Python3:用xpath库爬取猫眼评分top100电影 在看<Python3 网络爬虫开发实战中>一书学习时,书中第三章例子用re正则匹配来爬取电影的所需数据,虽然爬取速度快,效率好, ...
- node.js 实现简单爬虫批量下载喜马拉雅音频
前提:最近一直在看node,平时碎觉喜欢听盗墓笔记啥的有声小说,然后突然就就想试着写个爬虫自己下载下来,虽然有点多此一举,但是就当学习练练手了,在这里记录一下! 没有express基础的,请先行了解 ...
- python爬取酷狗音乐json数据为空_【Python3爬虫】下载酷狗音乐上的歌曲
经过测试,可以下载要付费下载的歌曲(n_n) 准备工作:python3.5+pycharm 使用到的库:requests,re,json 步骤: 打开酷狗音乐的官网,输入想要搜索的歌曲(例如<天 ...
- 【Python3爬虫】下载酷狗音乐上的歌曲
经过测试,可以下载要付费下载的歌曲(n_n) 准备工作:Python3.5+Pycharm 使用到的库:requests,re,json,time,fakeuseragent 步骤: 打开酷狗音乐的官 ...
- python3 简单爬虫实战|使用selenium来模拟浏览器抓取选股宝网站信息里面的股票
对爬虫的简单介绍 1. 什么是爬虫? 请求页面并提取数据的自动化过程. 2. 爬虫的基本流程 (1) 发起请求:通过url向服务器发起request请求,请求可以包含额外的header信息 ...
- Python3 网络爬虫:下载小说的正确姿势
1 前言 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高深的知识. 那么针对这三类人,我 ...
- Python3 简单爬虫爬取百度贴吧帖子
使用Python3.x的版本 对http://tieba.baidu.com/p/2005436135,该百度贴吧帖子进行爬取操作. 一.使用到的库. 1. urllib.request :对 ...
最新文章
- 「AI初识境」激活函数:从人工设计到自动搜索
- 应用Java程序片段动态生成表格
- 注册jdbc驱动程序的三种方式
- elasticsearch索引模板
- Hadoop -- ES -- CURD
- Vue 使用 screenfull 实现全屏
- 拆半查找的递归和非递归算法
- 【初窥javascript奥秘之闭包】叶大侠病都好了,求不踩了:)
- Qt通过ODBC读取excel文件
- pat 乙级 1008 数组元素循环右移问题(C++)
- 快速搭建redis单机版和redis集群版
- 19 CO配置-控制-产品成本控制-产品成本计划编制-定义日期控制
- coursera访问不了
- Grafana v6.0.0 发布,系统指标监控与分析平台
- Java编程:排序算法——归并排序
- 软件需求规格说明书模板
- 滚球板球控制系统详解(openmv+stm32实现)
- 1+x云计算中级,第二天串讲,拓扑图
- 爬取静态壁纸网站实现批量下载
- 各软件版本、仓库、官网地址