Python基于爬虫实现全网搜索并下载音

北京痤疮医院简介 https://m-mip.39.net/baidianfeng/mipso_8578752.html

现在写一篇文章总是喜欢先谈需求或者本内容的应用场景,是的,如果写出来的东西没有任何应用价值,确实也没有实际意义。今天的最早的需求是来自于如何免费[白嫖]下载全网优质音乐,我去b站上面搜索到了一个大牛做过的一个歌曲搜素神器,界面是这样的:

确实很好用的,而且涵盖了互联网上面大多数主流的音乐网站,涉及到的版本也很多,可谓大而全,但是一个技术人的追求远远不会如此,于是我就想去了解其中背后的原理,因为做过网络爬虫的人都知道,爬虫只能爬取某一页或者某些页的网站资源,所以我很好奇它背后是怎么实现的?笔者一直以来都是做的基于Python3.7版本的网络爬虫,所以本文也是基于此来学习记录的。首先爬取的网站不是对应的音乐网站,而是一个音乐直链搜索,那里汇聚了大多数音频音乐的解析功能,界面如下:

所以自制一个搜索引擎的思想也很直观了,那就是利用第三方的接口,直接对该服务器发起请求即可,然后将获取的数据进行解析保存。这里以最近比较火的歌曲“白月光与朱砂痣”下载为例:

解析的结果如上,获取的数据格式是json类型,并且除了要有歌名以外,还要有音乐平台。

源代码实现如下:

importrequestsimportjsonpathimportos"""1.url2.模拟浏览器请求3.解析网页源代码4.保存数据"""defsong_download(url,title,author):#创建文件夹os.makedirs("music",exist_ok=True)path=music\{}.mp3.format(title)print(歌曲:{0}-{1},正在下载....format(title,author))#下载(这种读写文件的下载方式适合少量文件的下载)content=requests.get(url).contentwithopen(file=title+author+.mp3,mode=wb)asf:f.write(content)print(下载完毕,{0}-{1},请试听.format(title,author))defget_music_name():"""搜索歌曲名称:return:"""name=input("请输入歌曲名称:")print("1.网易云:netease\n2.QQ:qq\n3.酷狗:kugou\n4.酷我:kuwo\n5.百度:baidu\n6.喜马拉雅:ximalaya")platfrom=input("输入音乐平台类型:")print("-------------------------------------------------------")url=



转载请注明地址:http://www.sanbaicaoasb.com/sczz/8133.html
  • 上一篇文章:
  • 下一篇文章:
  • 热点文章

    • 没有热点文章

    推荐文章

    • 没有推荐文章