找回密码
  注册[Register]
查看: 1304|回复: 11

[python] Python抓取全网音乐

[复制链接]
发表于 2021-1-26 19:39 来自手机 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。

支持音乐平台(网易,QQ,酷狗,酷我)

描述:

1.下载音乐文件(.mp3)

2.下载歌词文件(.lrc)

注意:部分搜出来的歌,下载后无法播放的原因是,歌曲地址出现错误,不关代码问题,是网站!

代码写的菜,不是我的错,有大神可以帮我改进下吗?

Github:https://github.com/AYueMortal/ParseMusic/

代码本体:
  1. import requests
  2. import jsonpath

  3. headers = {
  4.     "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"
  5. }
  6. print("——————————")
  7. print("1-网易")
  8. print("2-QQ")
  9. print("3-酷狗")
  10. print("4-酷我")
  11. types = int(input("请选择搜索引擎:"))
  12. if types == 1:
  13.     type = "netease"
  14. elif types == 2:
  15.     type = "qq"
  16. elif types == 3:
  17.     type = "kugou"
  18. elif types == 4:
  19.     type = "kuwo"
  20. else:
  21.     print("输入有误,程序已退出!")
  22.     exit()
  23. keyword = str(input("请输入搜索歌曲:"))
  24. data = {
  25.     'input': keyword,
  26.     'filter': 'name',
  27.     'type': type,
  28.     'page': '1'
  29. }
  30. url = "https://tool22.com/zb_tools/ajax.php?act=MusicTools"
  31. url_html = requests.post(url, headers=headers, data=data).json()
  32. titles = jsonpath.jsonpath(url_html, "$..title")
  33. authors = jsonpath.jsonpath(url_html, "$..author")
  34. urls = jsonpath.jsonpath(url_html, "$..url")
  35. lrcs = jsonpath.jsonpath(url_html, "$..lrc")
  36. pages = [1,2,3,4,5,6,7,8,9,10]
  37. print("——————————")
  38. for title, author, page in zip(titles, authors, pages):
  39.     print(f'{page}.{title} - {author}')

  40. output = int(input("请输入下载的数字序号:"))
  41. if output == 1:
  42.     hash = urls[0]
  43.     lrc2 = lrcs[0]
  44.     name = titles[0] + " - " +authors[0]
  45. elif output == 2:
  46.     hash = urls[1]
  47.     lrc2 = lrcs[1]
  48.     name = titles[1] + " - " +authors[1]
  49. elif output == 3:
  50.     hash = urls[2]
  51.     lrc2 = lrcs[2]
  52.     name = titles[2] + " - " +authors[2]   
  53. elif output == 4:
  54.     hash = urls[3]
  55.     lrc2 = lrcs[3]
  56.     name = titles[3] + " - " +authors[3]   
  57. elif output == 5:
  58.     hash = urls[4]
  59.     lrc2 = lrcs[4]
  60.     name = titles[4] + " - " +authors[4]
  61. elif output == 6:
  62.     hash = urls[5]
  63.     lrc2 = lrcs[5]
  64.     name = titles[5] + " - " +authors[5]
  65. elif output == 7:
  66.     hash = urls[6]
  67.     lrc2 = lrcs[6]
  68.     name = titles[6] + " - " +authors[6]
  69. elif output == 8:
  70.     hash = urls[7]
  71.     lrc2 = lrcs[7]
  72.     name = titles[7] + " - " +authors[7]
  73. elif output == 9:
  74.     hash = urls[8]
  75.     lrc2 = lrcs[8]
  76.     name = titles[8] + " - " +authors[8]
  77. elif output == 10:
  78.     hash = urls[9]
  79.     lrc2 = lrcs[9]
  80.     name = titles[9] + " - " +authors[9]   
  81. else:
  82.     print("输入数字序号有误")
  83.     print("程序已退出")
  84.     exit()
  85. url_data = requests.get(hash, headers=headers).content
  86. with open(name + ".lrc", "w") as f:
  87.     f.write(lrc2)
  88. with open(name + ".mp3", "wb") as f:
  89.     f.write(url_data)
  90.     print("——————————")
  91.     print("{} —— 已下载".format(name))
复制代码

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2021-1-26 19:39 | 显示全部楼层
谢谢@Thanks!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-1-26 20:05 | 显示全部楼层

感谢分享,谢谢提供分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-1-26 20:48 | 显示全部楼层
谢谢分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-1-26 20:50 | 显示全部楼层
谢谢大佬
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-1-26 20:50 | 显示全部楼层
谢谢分享!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-1-26 21:14 | 显示全部楼层
多谢分享多谢分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-1-26 23:45 | 显示全部楼层
6666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-1-27 00:34 | 显示全部楼层
谢谢大牛
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-1-27 08:36 | 显示全部楼层
谢谢分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

RSS订阅|手机版|小黑屋|大牛论坛 |我的广告

GMT+8, 2024-5-3 00:03 , Processed in 0.047041 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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