デンマークの国営ラジオ局 P3 で再生された 36,000 曲のトラックリストをクロールしました。この期間内に各ジャンルがどれくらいの頻度で再生されたかについて統計を取りたいので、discogs API が各トラックにジャンルのラベルを付けるのに役立つかもしれないと考えました. ただし、API のドキュメントには、特定の曲のジャンルをクエリする例が含まれているようです。
アーティスト、タイトル、テスト (API で各曲にジャンルのラベルを付けるテスト) の 3 つの列を持つ CSV ファイルがあります。
これまでに作成したスクリプトのサンプルを次に示します。
import json
import pandas as pd
import requests
import discogs_client
d = discogs_client.Client('ExampleApplication/0.1')
d.set_consumer_key('key-here', 'secret-here')
input = pd.read_csv('Desktop/TEST.csv', encoding='utf-8',error_bad_lines=False)
df = input[['Artist', 'Title', 'Test']]
df.columns = ['Artist', 'Title','Test']
for i in range(0, len(list(df.Artist))):
x = df.Artist[i]
g = d.artist(x)
df.Test[i] = str(g)
df.to_csv('Desktop/TEST2.csv', encoding='utf-8', index=False)
このスクリプトは、指定された ID 番号のアーティストをマッピングするために、これまでに 3 つのレコードを含むダミー ファイルで動作しています。しかし、ファイルが大きくなるとすぐに (ex. 2000)、アーティストが見つからないと HTTP エラーを返します。
このアプローチに関していくつか質問があります。
1) API の検索クエリ機能を使用して、変数を「ジャンル」として取得することをお勧めしますか? それとも、「d」でジャンルを取得できると思いますか。APIからの機能?
2) API キーを取得する必要がありますか? これまでのところ、API キーなしで 3 つのレコードを正常にマッピングしました。ただし、キーは無料のようです。
これが私がフォローしているガイドです: https://github.com/discogs/discogs_client
API のドキュメントは次のとおりです: https://www.discogs.com/developers/#page:home,header:home-quickstart