【发布时间】:2018-11-24 22:30:44
【问题描述】:
注意:我完全是 YAML 的初学者,我还不明白为什么以及如何使用 YAML。所以,我的问题可能包含一些与 YAML 无关的内容。对不起,请纠正他们。
在音乐播放器 (MusicBee) 中,我找到了一个插件,可以获取歌曲的歌词。从歌词提供者获取歌词的方式写在 YAML 文件 (yml) 中。并且作为示例,来自AZLyrics 的歌词由以下 yml 文件获取;
name: A-Z Lyrics Universe
url: "http://www.azlyrics.com/lyrics/{artist}/{title}.html"
extractor: '(?s)<div>\s+<!--\s+Usage.*?\s+-->(?P<lyrics>.+?)<\/div>'
headers:
- name: User-Agent
value: 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0' # Firefox 30 Win x64 user agent
variables:
- &artist
name: artist
filters:
- [lowercase]
- [strip_nonascii]
- <<: *artist
name: title
filters:
- [strip_html]
- [trim]
- [utf8_encode]
这里歌词的 URL 直接由下式给出;
http://www.azlyrics.com/lyrics/{artist}/{title}.html
但这是我的问题。而不是使用上面的链接,我需要做一个简单的谷歌搜索
https://www.google.lk/search?q={artist}+{title}+azlyrics+lyrics
并从搜索结果中获取第一个 URL,然后将其用作歌词的 URL。
问题:
- YAML 是否能够完成我需要完成的任务?
- 如果是,我该怎么做? google结果如何处理?
- 如果没有,您能给我一些建议吗,我必须走什么路才能完成我的任务?
注意:这是给定插件的source code。
【问题讨论】:
-
YAML 是一种数据序列化语言。将其与 JSON 进行比较,尽管它更强大一些。它不是一种编程语言,也没有 YAML 解释器。它当然无法获取 url。
-
@tinita 我们不能在 YAML 中使用函数吗?
-
您可以在 YAML 中使用函数,但这取决于用于加载 YAML 文档的程序库、程序语言以及它们是否使用“安全”加载(他们应该这样做)。鉴于任何分发不使用安全加载程序的人都应该被扔出我们赖以生存的宇宙飞船,并且它是用 C# 编写的,因此您不太可能进行任何间接加载,除非该程序/plugin 实现了它(并且阅读文档,它没有)。
标签: json yaml google-search