我在数学课程中有这个项目,我正在学习这个学期,我需要为它构建一个Web应用程序和一个DB设计。
第一步是收集大量与音乐相关或主题的记录(至少20k)。现在,我自己就是一名吉他手,所以我想用吉他标签和/或和弦做一些事情,并考虑使用https://www.ultimate-guitar.com/作为标签和和弦的来源。
不幸的是,https://www.ultimate-guitar.com/没有提供允许我轻松访问和检索大量标签的API。幸运的是,我找到了几个公共GitHub存储库,这似乎是我需要的,更是如此,其中一个是python,这是该项目的首选语言。
遗憾的是,我不熟悉使用外部API的方法,我发现自己无法使用前面提到的存储库。我不确定它们是不完整还是我根本不理解如何操作它们。我尝试使用我的PyCharm IDE克隆它们,但无法使用它们来获取选项卡。
为了避免自己从头开始写一些东西(这需要花费相当多的时间,坦白地说我没有),我有两个选择:
因为它是一个组项目,我想避免第二个选项,所以这里是我在GitHub上找到的存储库:
我已经向第一个存储库的作者发送了一封电子邮件,因为它是三个中最有希望的,但由于时间限制,我同时发布了这个问题。
UPDATE
正如所建议的,我将说明我的问题,我如何使用ultimate-api编写一个访问选项卡的python客户端程序。
您的意见和指导表示赞赏。
我要回答你问的具体问题:如何使用ultimate-api
。
首先确保您的机器上安装了python3
和virtualenv
:
$ type -a python3
$ type -a virtualenv
如果这些命令中的任何一个没有返回任何内容,则必须先安装给定的程序。现在转到克隆ultimate-api
存储库并运行的目录:
$ virtualenv -p python3 venv
$ source venv/bin/activate
$ pip install -r requirements.txt
您不需要成为root
用户。
现在启动服务器:
$ python3 run.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 122-615-257
在你最喜欢的网络浏览器中访问http://127.0.0.1:5000
,它应该说hi
。现在,因为ultimate-api
的文档说你必须使用:
ultimate-guitar.com标签的完整(包括协议)网址。
用/tab
方法。
例:
http://127.0.0.1:5000/tab?url=https://tabs.ultimate-guitar.com/tab/_chk_chk_chk/intensify_bass_934215
http://127.0.0.1:5000/tab?url=https://tabs.ultimate-guitar.com/tab/_chk_chk_chk/me_and_giuliani_down_by_the_schoolyard_a_true_story_bass_512135
更新
比如,获取100个顶部标签的网址:
$ wget -U firefox https://www.ultimate-guitar.com/top/tabs -O - 2>/dev/null | grep -F 'https://tabs.ultimate-guitar.com/tab/' | grep -E -o '<a href=.+"' | sed -E 's,^<a href=",,' | sed 's,"$,,'
现在,您可以将此URL与ultimate-api
服务器一起使用。