python - 终极吉他API和终极API的使用

标签 python http github client-server

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

3年前关闭。




Improve this question




我有这个项目在我这个学期的数据库类(class)中,我需要构建一个 Web 应用程序并为它设计一个数据库。

第一步是收集大量与音乐相关或主题的唱片(至少 20k)。现在,我自己也是一名吉他手,所以我想用吉他谱和/或和弦做一些事情,并想到使用 https://www.ultimate-guitar.com/作为标签和和弦的来源。

不幸的是,https://www.ultimate-guitar.com/不提供允许我轻松访问和检索大量选项卡的 API。对我来说幸运的是,我找到了几个似乎是我需要的公共(public) GitHub 存储库,更重要的是,其中一个是 python,它是这个项目的首选语言。

可悲的是,我并不精通使用外部 API 的方式,而且我发现自己无法使用上述存储库。我不确定它们是否不完整,或者我只是不明白如何操作它们。我尝试使用我的 PyCharm IDE 克隆它们,但无法使用它们来获取选项卡。

为了避免自己从头开始写东西(坦率地说,这将花费大量时间,我没有),我有两个选择:

  • 向 SO 寻求帮助以了解如何使用这些 API。
  • 改变我的项目的主题。

  • 因为它是一个小组项目,我想避免使用第二种选择,所以这里是我在 GitHub 上找到的存储库:
  • https://github.com/joncardasis/ultimate-api (Python)
  • https://github.com/vincepii/uguitar-python (Python)
  • https://github.com/masterT/ultimate-guitar-scraper (JavaScript)

  • 我已经向第一个存储库的作者发送了一封电子邮件,因为它是三个存储库中最有前途的,但由于时间限制,我同时发布了这个问题。

    更新

    如建议的那样,我将具体说明我的问题,如何使用 Ultimate-api 编写访问选项卡的 python 客户端程序。

    感谢您的建议和指导。

    最佳答案

    我将回答您提出的一个具体问题:如何使用 ultimate-api .

    首先确保您有 python3virtualenv安装在您的机器上:

    $ 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 的文档说你必须
    利用:

    A full (including protocol) url for an ultimate-guitar.com tab.



    /tab方法。

    例子:
    http://127.0.0.1:5000/tab?url=https://tabs.ultimate-guitar.com/tab/_chk_chk_chk/intensify_bass_934215http://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 个热门标签的 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 与 ultimate-api 一起使用服务器。

    关于python - 终极吉他API和终极API的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47854436/

    相关文章:

    api - 在什么情况下客户端应该为 REST URI 选择唯一的资源 ID,在什么情况下服务器应该指定它?

    python - CSV 文件登录系统无法正常工作

    rest - HTTP 缓存的授权检查

    python - 使用 python 脚本在 apache2 上不通过 SSL 显示图像

    使用 wget 下载的图像大小为 4 个字节

    github - GitHub Actions download-artifact 是否创建存档或文件夹结构?

    linux - 如何在git中检查一个文件从一个分支到另一个分支的变化量?

    git - 如何更改已关闭/merge 的 pull 请求的基本分支?

    python - 为什么使用 scipy 计算的函数的导数随参数 dx 的值而变化?

    python - 基于分数的值量化