我在这学期要修的数据库课程中有一个项目,要求我建立一个web应用程序并为它设计一个数据库。
第一步是收集大量与音乐相关或主题化的唱片(至少20K)。现在,我自己也是一个吉他手,所以我想用吉他的标签和/或和弦做点什么,并考虑使用https://www.ultimate-guitar.com/作为标签和和弦的来源。
不幸的是,https://www.ultimate-guitar.com/没有提供一个api,使我能够轻松地访问和检索大量的选项卡。幸运的是,我找到了两个公共github存储库,它们似乎是我所需要的,更重要的是,其中一个是python语言,这是本项目的首选语言。
遗憾的是,我不精通使用外部api的方法,我发现自己无法使用上述存储库。我不确定它们是否不完整,或者我只是不知道如何操作它们。我试着用我的pycharm ide克隆它们,但无法用它们来获取标签。
为了避免自己从头开始写东西(坦率地说,这需要相当长的时间),我有两个选择:
请寻求帮助,以了解如何使用这些api。
改变我项目的主题。
因为这是一个组项目,所以我想避免使用第二个选项,下面是我在github上找到的存储库:
https://github.com/joncardasis/ultimate-api(巨蟒)
https://github.com/vincepii/uguitar-python(巨蟒)
https://github.com/masterT/ultimate-guitar-scraper(javascript)
我给第一个仓库的作者发了一封电子邮件,因为它是三个仓库中最有希望的,但是由于时间限制,我同时发布了这个问题。
更新
如前所述,我将详细说明我的问题:如何使用UltimateAPI编写访问选项卡的Python客户端程序。
感谢您的建议和指导。
最佳答案
我将回答您提出的一个具体问题:如何使用ultimate-api
。
首先确保您的计算机上安装了python3
和virtualenv
:
$ type -a python3
$ type -a virtualenv
如果这两个命令中的任何一个都不返回
先安装给定的程序。现在转到克隆存储库的目录并运行:
$ virtualenv -p python3 venv
$ source venv/bin/activate
$ pip install -r requirements.txt
你不需要成为
ultimate-api
用户就可以做到这一点。现在启动服务器:
$ 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
在您喜爱的Web浏览器中转到
root
,它应该说
http://127.0.0.1:5000
。现在正如hi
的文档所说,您必须使用:
Ultimate-Guitar.com选项卡的完整(包括协议)URL。
使用
ultimate-api
方法。例子:
/tab
http://127.0.0.1:5000/tab?url=https://tabs.ultimate-guitar.com/tab/_chk_chk_chk/intensify_bass_934215
更新
例如,要获取100个顶级选项卡的URL:
$ 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与
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
服务器一起使用。