鱼C论坛

 找回密码
 立即注册
查看: 1432|回复: 1

[作品展示] 通过接口爬取全网音乐

[复制链接]
发表于 2020-6-2 23:02:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 aa1448176630 于 2020-6-2 23:27 编辑

  1. import requests as r
  2. import re
  3. import os

  4. def open_url(url):
  5.     data={'pagepwd': '11688'}# 11688 为进入网站口令 随时可能失效 自行更新
  6.     head={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 Edg/83.0.478.37'}
  7.     p=r.post(url,data=data,headers=head)
  8.     return p
  9.    
  10. def find_link(p):
  11.     p.encoding='utf-8'
  12.     p=p.text
  13.    
  14.     l="url: '([^']+)"#播放链接
  15.     link=re.findall(l,p)
  16.     n="name: '([^']+)"#曲名
  17.     name=re.findall(n,p)
  18.     sn="artist: '([^']+)"#作者
  19.     sname=re.findall(sn,p)
  20.     #print(name)
  21.     #print(link)
  22.    
  23.     save(name,link,sname)
  24.    
  25. def save(name,link,sname):
  26.     if not os.path.exists(r'C:\Users\Administrator\Desktop\allmusic'):
  27.         #print("ceshi")
  28.         os.mkdir(r'C:\Users\Administrator\Desktop\allmusic')
  29.         os.chdir(r'C:\Users\Administrator\Desktop\allmusic')
  30.     length=len(name)
  31.    
  32.     for i in range(length):
  33.         if i>=5: #默认下前五首
  34.             break
  35.         path=r'C:\Users\Administrator\Desktop\allmusic'+'\\'+ name[i] + sname[i] + '.mp3'
  36.         with open (path,'ab+') as f:
  37.             p=open_url(link[i]).content
  38.             f.write(p)
  39.             f.close()
  40.             print("第"+ str(i+1) + "首下载完成!")
  41.     print("默认前5首下载完成!")

  42.    
  43. if __name__=='__main__':
  44.     kw=input("请输入歌名或者歌手名:")
  45.     print("下载源有1、wy(网易云)  2、kuwo(酷我)  3、qq(QQ音乐)  4、kg(酷狗)  5、migu(咪咕)")
  46.     a=['wy','kuwo','qq','kg','migu']
  47.     flag=1
  48.     print("请输入下载源:",end='')
  49.     while flag:
  50.         source=input()
  51.         if source in a:
  52.             url='https://music.hwkxk.cn/?kw='+str(kw)+'&source='+str(source)
  53.             #print(url)
  54.             p=open_url(url)
  55.             find_link(p)
  56.             flag=0
  57.         else:
  58.             print("输入下载源有误,请重新输入:",end='')

复制代码

爬虫新手,仅为交作业,大佬勿喷
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-3 08:11:48 | 显示全部楼层
唉,我还没学python呢,你们都好强大
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-21 05:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表