#https://www.ximalaya.com/yinyue/
#更改後面網址以對應欲爬取內容

import requests
from lxml import etreeclass Spider(object):def __init__(self):self.headers = {'User-Agent':"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"}def GetReponce(self,url):reponce = requests.get(url, headers=self.headers)return reponcedef Main(self,reponce,id):try:list =[]htmls = etree.HTML(reponce.text)datas = htmls.xpath("//a[@class='album-title line-1 lg bold _kC']")for data in datas:tits = data.xpath('./@title')href = data.xpath('./@href')id+=1list.append("id("+str(id)+'):'+tits[0].strip()+href[0])print(list)idnum=int(input('輸入欲抓取該音樂整套輯的id:'))idnum=list[idnum-1].split('/')return idnum[-2]except Exception as f:print('拼音內容可能有誤,或無法對應該拚音,請重新運行'+f)return ""def GetJson(self,reponce):import rejson=reponce.texttrackName = re.findall(r'"trackName":(.*?),',json)src = re.findall(r'"src":(.*?),',json)# print(src)print(trackName)return src ,trackNamedef DownLoad(self,src ,trackName):import os#在當前路徑中生成資料夾(放置音樂用)paths = os.getcwd()paths = os.path.join(paths, '自定義')print(paths)#判斷文件夾是否存在being = os.path.exists(paths)if being == False:print('建立資料夾')os.mkdir(paths)for m4a,name in zip(src,trackName):music = requests.get(m4a.strip('"'), headers=self.headers)name =name.strip('"')with open(paths+"\\"+name+'.m4a','wb')as f:f.write(music.content)print(name,'下載完畢')print('DONE')stop=input('等待')def Pini(music):from pypinyin import lazy_pinyinmusic = lazy_pinyin(music)if len(music):music = ''.join(music) + "/"else:music = ""return music
if __name__ == '__main__':idnum = 0music=input('請輸入音樂爬取的音樂總類,不輸入表示音樂全部種類:')pini=Pini(music)url = "https://www.ximalaya.com/yinyue/{}".format(pini)spider=Spider()reponce=spider.GetReponce(url)idnumber_url="https://www.ximalaya.com/revision/play/album?albumId={}&pageNum=1&sort=1&pageSize=30".format(spider.Main(reponce,idnum))src,trackName=spider.GetJson(spider.GetReponce(idnumber_url))spider.DownLoad(src,trackName)

使用python抓取喜馬拉雅音樂並且下載相关推荐

  1. python代码案例详解-我用Python抓取了7000 多本电子书案例详解

    安装 安装很简单,只要执行: pip install requests-html 就可以了. 分析页面结构 通过浏览器审查元素可以发现这个电子书网站是用 WordPress 搭建的,首页列表元素很简单 ...

  2. python抓取头条文章

    python抓取头条美文并存储到mongodb # Author:song from multiprocessing import Pool from urllib.parse import urle ...

  3. 微信好友大揭秘,使用Python抓取朋友圈数据,通过人脸识别全面分析好友,一起看透你的“朋友圈”...

    微信:一个提供即时通讯服务的应用程序,更是一种生活方式,超过数十亿的使用者,越来越多的人选择使用它来沟通交流. 不知从何时起,我们的生活离不开微信,每天睁开眼的第一件事就是打开微信,关注着朋友圈里好友 ...

  4. python爬虫保存图片到指定文件夹_李亚涛:python抓取某房源户型图并自动保存到文件夹...

    大家好,今天来给大家分享一下如何抓取某房产网站房源户型图的所有图片,而且自动以房源名称命名一个文件夹,把所有图片放到文件夹中. 大概的思路是: 1.获取网页源代码 2.获取图片地址与房源名称 3.在当 ...

  5. blob的真实地址怎么获得_使用Python抓取m3u8加密视频 续:获得index.m3u8 地址

    之前写<使用Python抓取m3u8加密视频>笔记的原因,是自己有几个视频想保存,但对于m3u8, .ts 文件拼接不熟悉,就尝试写个脚本练手. 今天看了回复,有同学想知道如何从视频网站上 ...

  6. python 抓取的网页默认是bytes的,要转码

    python 抓取的网页默认是bytes的,要转码. 查看网页源码可以看到,我本次抓取的网页的编码方式是utf-8的. req = urllib.request.Request(url=myurl,h ...

  7. python 抓取网页链接_从Python中的网页抓取链接

    python 抓取网页链接 Prerequisite: 先决条件: Urllib3: It is a powerful, sanity-friendly HTTP client for Python ...

  8. python抓取网站乱码_如何使用Python抓取网站

    python抓取网站乱码 by Devanshu Jain 由Devanshu Jain It is that time of the year when the air is filled with ...

  9. python抓取gb2312/gbk编码网页乱码问题

    做了个网络爬虫抓取网页,但如果网页是gbk/gb2312编码,则会出现乱码问题,如下: 取得文字后,直接打印,输出结果str如下:¹óÖÝÈËÊ¿¼ÊÔÐÅÏ¢Íø_¹óÖÝÈËÊ¿¼ÊÔÍø_¹ ...

最新文章

  1. oracle中的exists 和not exists 用法详解
  2. 怎么这一个c语言的dll文件,如何在C中获取DLL文件的版本信息
  3. 重学hadoop技术
  4. vb mschart 坐标名称_最强干货来了:Grasshopper运算器名称总结(上篇)
  5. 关于浏览器对静态HTML页面的缓存问题
  6. Linux 命令之 locate -- 文件查找工具(查找文件/搜索文件)
  7. linux awk 日志分析,Linux Awk使用案例总结 nginx日志统计
  8. 【2015年第4期】大数据引领教育未来:从成绩预测谈起
  9. java 网络百度搜索_Java爬虫怎么调用百度搜索引擎,对关键字的网页爬取?
  10. 【Office】Microsoft Office下载地址合集(微软官方原版离线安装下载)
  11. 杂篇:Java源码阅读绘图规范手册--[捷特版]
  12. Java基础篇--概念理解(泛型、注解)
  13. 无损数据压缩算法c语言,短短的C代码,帮忙,看看压缩算法,感激不尽
  14. 使用AVFoundation完成照片拍摄存储相册, 开启关闭闪光灯, 切换摄像头
  15. wpa_supplicant、hostapd编译
  16. 国产三维CAD华天软件STNOVATION 几何造型内核CRUX IV 解析
  17. HTML读取xml文件的三种办法
  18. 【Unity】入门学习笔记180605——游戏动画设计(4)——游戏角色动画基础
  19. apk解析包出现错误、9:01 Generate Signed APK: Errors while building APK. You can find the errors in the ‘M
  20. SpringBoot 官方强烈推荐,连接池,太快了!

热门文章

  1. python 散点图加趋势线
  2. python汇率编程_python – 确定汇率的算法
  3. GIS空间分析之密度分析
  4. 了解freopen函数
  5. GSM 相关名词解释
  6. MyBatis逆向工程(一)
  7. 东华理工大学南昌校区学计算机,我校学子在2019年第十四届江西省大学生计算机作品赛斩获佳绩...
  8. 监控linux资源的软件,6个监控linux系统资源的快速工具
  9. 卸载macOSX版本的亚信安全防毒墙
  10. 海尔计算机类,分享海尔计算机类笔试题 -管理资料