正在通过 YAML 获取 Google 个搜索结果
Fetching Google search results through YAML
注意:我完全是 YAML 的初学者,我还不明白 YAML 的原因和方式。所以,我的问题可能包含一些与 YAML 无关的内容。对不起,请更正它们。
在音乐播放器(MusicBee)中,我找到了一个插件,可以获取歌曲的歌词。如何从歌词提供者获取歌词是写在 YAML 文件 (yml) 中的。例如,以下 yml 文件从 AZLyrics 中获取的歌词;
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
但这是我的问题。而不是使用上面的 link 我需要做一个简单的 google 搜索 as
https://www.google.lk/search?q={artist}+{title}+azlyrics+lyrics
并从搜索结果中抓取第一个URL,然后将其用作歌词的URL。
问题:
- YAML 是否能够完成我需要完成的任务?
- 如果是,我该怎么做?如何处理google结果?
- 如果没有,你能给我一些建议吗,我完成任务必须走的路是什么?
注意:这里是给定插件的source code。
NO 你不能用 YAML 做到这一点,因为它只是一个
YAML is a human-readable data serialization language
所以你必须为你选择一种编程语言。支持发出 HTTP 请求(Most famous once 支持)
这里你没有提到你熟悉的语言,所以我不会详细介绍,只是步骤
- 向为 Google
构建的 URL 发出 HTTP 请求
- 解析抓取结果
- 读取结果
中第一个link
- 随处使用该结果。
您使用每种语言都会改变执行每项任务的方式。但是是的,它几乎可以分解为这个。
更新:
Google提供了API用于查询,对于JAVA的例子可以查看this
YAML/YML 是 .properties/.json 文件的另一种替代方法,但 更 developer/user 友好。
通常,“.yml”文件用于指定应用程序的configuration/meta数据。
简单的说,它是一种数据表示格式,它本身什么都不做。
您的代码必须读取 YAML 文件的内容并执行操作,在本例中,操作正在搜索 google 以获取结果。
就像有用于从 .json 文件中读取内容的特定语言库一样,也有用于从 .yml 文件中读取内容的库。
检查 http://yaml.org/ link。
注意:我完全是 YAML 的初学者,我还不明白 YAML 的原因和方式。所以,我的问题可能包含一些与 YAML 无关的内容。对不起,请更正它们。
在音乐播放器(MusicBee)中,我找到了一个插件,可以获取歌曲的歌词。如何从歌词提供者获取歌词是写在 YAML 文件 (yml) 中的。例如,以下 yml 文件从 AZLyrics 中获取的歌词;
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
但这是我的问题。而不是使用上面的 link 我需要做一个简单的 google 搜索 as
https://www.google.lk/search?q={artist}+{title}+azlyrics+lyrics
并从搜索结果中抓取第一个URL,然后将其用作歌词的URL。
问题:
- YAML 是否能够完成我需要完成的任务?
- 如果是,我该怎么做?如何处理google结果?
- 如果没有,你能给我一些建议吗,我完成任务必须走的路是什么?
注意:这里是给定插件的source code。
NO 你不能用 YAML 做到这一点,因为它只是一个
YAML is a human-readable data serialization language
所以你必须为你选择一种编程语言。支持发出 HTTP 请求(Most famous once 支持)
这里你没有提到你熟悉的语言,所以我不会详细介绍,只是步骤
- 向为 Google 构建的 URL 发出 HTTP 请求
- 解析抓取结果
- 读取结果 中第一个link
- 随处使用该结果。
您使用每种语言都会改变执行每项任务的方式。但是是的,它几乎可以分解为这个。
更新:
Google提供了API用于查询,对于JAVA的例子可以查看this
YAML/YML 是 .properties/.json 文件的另一种替代方法,但 更 developer/user 友好。
通常,“.yml”文件用于指定应用程序的configuration/meta数据。
简单的说,它是一种数据表示格式,它本身什么都不做。
您的代码必须读取 YAML 文件的内容并执行操作,在本例中,操作正在搜索 google 以获取结果。
就像有用于从 .json 文件中读取内容的特定语言库一样,也有用于从 .yml 文件中读取内容的库。
检查 http://yaml.org/ link。