ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
Python自动化办公应用大全 Excel 2021函数公式学习大典 Kutools for Office 套件发布 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: chuhaiou

[求助] 怎样用VBA抓取网页源代码中的酷狗歌词

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-4-13 22:18 | 显示全部楼层
chuhaiou 发表于 2019-4-13 19:11
不仅仅适只用于一个歌的歌词抓取
  1. # -*- coding: utf-8 -*-
  2. # version: Python 3.7.0
  3. import requests,parsel
  4. from urllib import parse

  5. headers = {'User-Agent': '(KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}
  6. url = 'https://www.so.com/s'

  7. def get_html_parse(params, key):
  8.     r = requests.get(url, params=params, headers=headers)
  9.     sel = parsel.Selector(r.content.decode('utf-8'))
  10.     res = sel.xpath(f'//a[@class="mh-music-name"][starts-with(@title,{key})]/@href').re_first('url=(.+?)%3F')
  11.     if res:
  12.         r = requests.get(parse.unquote(res), headers=headers)
  13.         result = parsel.Selector(r.content.decode('utf-8')).css('div.displayNone::text').re_first('(?s)\A\s*(.+?)\s*\Z')
  14.         print(f'{"*"*10}{key}{"*"*10}\n{result}')

  15. if __name__ == '__main__':
  16.     key_list = ['干就完了','潇洒走一回']#添加歌名
  17.     for key in key_list:
  18.         params = {
  19.             'ie': 'utf - 8',
  20.             'fr': 'none',
  21.             'src': 'home - sug - store',
  22.             'q': key
  23.         }
  24.         get_html_parse(params, key)
复制代码
输出结果如下:
**********干就完了**********
[00:00.31]金久哲 - 干就完了(DJ何鹏版)
[00:01.32]作词:张天赋、张丰
[00:01.57]作曲:金久哲
[00:01.73]编曲:长春兄弟音乐
[00:02.59]录音:小多
[00:02.69]混音:长春兄弟音乐
[00:03.19]音乐总监:郭南生
[00:03.85]制作人:杨学涛
[00:04.00]发行:广州新月演艺
[00:32.25]人生的道路难免大起大落
[00:36.04]拿得起放得下别瞎琢磨
[00:39.73]举起杯走一个何必上火
[00:43.42]同样的世界不一样的我
[00:51.00]辉煌的时刻要靠自己拼搏
[00:54.64]脚下路怎么走自己掌握
[00:58.39]别计较成与败结果如何
[01:02.18]放开手就是干俗话就是磕
[01:07.63]干就完了干就完了
[01:11.70]干出个样来给自己看哪
[01:15.29]干就完了干就完了
[01:19.08]就算再高的山也在我脚下
[01:22.72]干就完了干就完了
[01:26.61]干出个样来孝敬爹妈
[01:30.30]干就完了干就完了
[01:34.15]干出个未来让梦想开花
[02:11.55]人生的道路难免大起大落
[02:15.34]拿得起放得下别瞎琢磨
[02:19.03]举起杯走一个何必上火
[02:22.77]同样的世界不一样的我
[02:30.31]辉煌的时刻要靠自己拼搏
[02:34.05]脚下路怎么走自己掌握
[02:37.77]别计较成与败结果如何
[02:41.67]放开手就是干俗话就是磕
[02:46.98]干就完了干就完了
[02:50.84]干出个样来给自己看啊
[02:54.48]干就完了干就完了
[02:58.42]就算再高的山也在我脚下
[03:01.92]干就完了干就完了
[03:06.01]干出个样来孝敬爹妈
[03:09.48]干就完了干就完了
[03:13.42]干出个未来让梦想开花
[03:17.12]干就完了干就完了
[03:20.97]干出个样来给自己看啊
[03:24.41]干就完了干就完了
[03:28.46]就算再高的山也在我脚下
[03:31.90]干就完了干就完了
[03:35.95]干出个样来孝敬爹妈
[03:39.51]干就完了干就完了
[03:43.45]干出个未来让梦想开花
**********潇洒走一回**********
[00:01.05]叶倩文 - 潇洒走一回
[00:03.23]作词:陈乐融、王蕙玲
[00:05.72]作曲:陈大力、陈秀男
[00:39.95]天地悠悠
[00:41.54]过客匆匆
[00:43.68]潮起又潮落
[00:47.79]恩恩怨怨
[00:49.57]生死白头
[00:51.65]几人能看透
[00:55.81]红尘呀滚滚
[00:57.69]痴痴呀情深
[00:59.67]聚散终有时
[01:03.68]留一半清醒
[01:05.66]留一半醉
[01:07.19]至少梦里有你追随
[01:11.71]我拿青春赌明天
[01:15.57]你用真情换此生
[01:19.63]岁月不知人间
[01:21.50]多少的忧伤
[01:23.49]何不潇洒走一回
[01:43.44]天地悠悠
[01:45.17]过客匆匆
[01:47.30]潮起又潮落
[01:51.37]恩恩怨怨
[01:53.05]生死白头
[01:55.28]几人能看透
[01:59.23]红尘呀滚滚
[02:01.37]痴痴呀情深
[02:03.24]聚散终有时
[02:07.25]留一半清醒
[02:09.18]留一半醉
[02:10.75]至少梦里有你追随
[02:15.32]我拿青春赌明天
[02:19.08]你用真情换此生
[02:23.08]岁月不知人间
[02:25.07]多少的忧伤
[02:27.00]何不潇洒走一回
[03:02.95]红尘呀滚滚
[03:04.78]痴痴呀情深
[03:06.71]聚散终有时
[03:10.82]留一半清醒
[03:12.70]留一半醉
[03:14.17]至少梦里有你追随
[03:18.68]我拿青春赌明天
[03:22.74]你用真情换此生
[03:26.60]岁月不知人间
[03:28.63]多少的忧伤
[03:30.60]何不潇洒走一回
[03:34.66]岁月不知人间
[03:36.54]多少的忧伤
[03:38.57]何不潇洒走一回

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-14 10:02 | 显示全部楼层
duquancai 发表于 2019-4-13 22:18
输出结果如下:
**********干就完了**********
[00:00.31]金久哲 - 干就完了(DJ何鹏版)

谢谢!这不是VBA吧?在EXCEL中怎样用呢

TA的精华主题

TA的得分主题

发表于 2019-5-5 21:52 | 显示全部楼层
这段时间测试自己的JSON类,找了一些帖子,发现酷狗歌词也是JSON的数据接口,歌曲搜索与歌词返回都是。测试中又发现了一点小小的BUG(如:[01:13.51]已经太辽阔,其中的“方括号【】”会忽略,已修改),挺好。
顺便做了一个酷狗歌词搜索小工具分享一下。
酷狗歌词搜索.rar (76.28 KB, 下载次数: 11)

解析歌词搜索
ku1.JPG

解析LRC歌词
ku.JPG

软件动态演示
kg.gif

网站数据分析源自于这个帖子,都是现成的,不用自己去分析,直接用就行了。
http://blog.sina.com.cn/s/blog_152f2324b0102xt4x.html


TA的精华主题

TA的得分主题

发表于 2019-5-6 15:26 | 显示全部楼层
期待,好用,最好是按列表的歌曲名,批量搜索歌词到excel表格中

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-6 19:19 | 显示全部楼层
谢谢,太漂亮了,期待增加保存为LRC歌词。可惜没有公开代码。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-6 19:32 | 显示全部楼层
本帖最后由 chuhaiou 于 2019-5-6 19:35 编辑
vbexcelhome 发表于 2019-5-5 21:52
这段时间测试自己的JSON类,找了一些帖子,发现酷狗歌词也是JSON的数据接口,歌曲搜索与歌词返回都是。测试 ...

有些歌曲,酷狗上有歌曲和歌词,可却出错,可能还有BUG。如图: 2019-05-06_193004.png

2019-05-06_193324.png

TA的精华主题

TA的得分主题

发表于 2019-5-6 21:09 | 显示全部楼层
酷狗歌词搜索.rar (77.74 KB, 下载次数: 6)
1、增加了保存歌词功能。
2、修改了没有找到歌词,提示错误424的BUG。
这个错误原因就是没有找到歌词,解析后调用JSON.GetAttributeValue("File_Name")出错。

《好人一生平安》我这里搜索正常的。当然别的歌词有可能出错,不过,我没有想怎么完善这个小工具,因为网上有现成的工具,我只是想测试完善自己的JSON解析类。

获取歌词部分的代码很简单,我已经在上面把别人解析歌词详细教程的网址都发出来了,直接按他解析出来的网址调用即可,这部分的代码也没有什么技术含量。主要注意的两点:获取歌词清单中会用到unix时间戳与网址转码,如:jQuery1124009331034002974925_1557147783250。中文“大鱼”要转成“%e5%a4%a7%e9%b1%bc”,最后解析歌词会用到Unicode编码转换如:\u58f0\u5c06\u591c\u5e55\u6df1\u6df1转换为中文。

源码不开放的原因就是其中有些模块不方便发布,比如时间、网址转码、Unicode编码转换、对话框、文本文件处理等等这些都是成品,没有办法发布。这些东西单拿出来其实都挺简单的,网上搜索一下有现成的,不过有些代码并不完善。


TA的精华主题

TA的得分主题

发表于 2019-5-6 21:49 | 显示全部楼层
哪位大神能帮忙完成就方便了,谢谢

找歌词.zip

7.91 KB, 下载次数: 4

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-5-7 11:21 | 显示全部楼层
本帖最后由 chuhaiou 于 2019-5-7 11:25 编辑
592rmb 发表于 2019-5-6 21:49
哪位大神能帮忙完成就方便了,谢谢

我是播放一个歌曲,就下载一个歌词。你是想一次性下载播放列表中的所有歌曲的歌词。网上同名歌词比较多,下载不一定歌词标签与歌曲正好匹配。还是vbexcelhome兄的工具好。

TA的精华主题

TA的得分主题

发表于 2019-5-12 08:30 | 显示全部楼层
本帖最后由 vbexcelhome 于 2019-5-12 19:54 编辑

酷狗歌词加了验证,所以暂时更换一下,请在歌词来源中选择别的地址。刚刚完成,还没有加入容错代码。歌词接口来源一个网友自己弄得,他把所有网站的歌词通过他自己的网站转换了一下,形成了标准接口,全部用GET调用,返回的是各自网站的JSON数据
接口介绍网址链接:https://mrdong916.github.io/mess-api-doc/#/music/kugou
歌曲搜索.rar (96.15 KB, 下载次数: 6)





歌曲搜索.rar

96.47 KB, 下载次数: 3

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-12-14 06:40 , Processed in 0.035689 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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