我试图通过利用此端点的艺术家标准来使用spotify搜索API:
http://ws.spotify.com/search/1/artist
为了找到名字中包含给定字符的每位艺术家,我构建了如下内容:
http://ws.spotify.com/search/1/artist?q=*a*
(这意味着找到所有艺术家的名字都是'' char。)
成功发送此URL会产生xml。此xml包含 totalResults 节点,该节点显示您要查找的实际艺术家数量。例如,上面提到的URL在撰写此问题时给了我许多425076位艺术家。 xml响应最多包含100位艺术家。因此,为了获得完整列表,您需要向URL添加页面参数并发送一些页面请求( number = totalResults / artistsPerPage )。
网址:
http://ws.spotify.com/search/1/artist?q=*a*&page=2
结果:
<artists xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns="http://www.spotify.com/ns/music/1">
<opensearch:Query role="request" startPage="2" searchTerms="*a*"/>
<opensearch:totalResults>425076</opensearch:totalResults>
<opensearch:startIndex>100</opensearch:startIndex>
<opensearch:itemsPerPage>100</opensearch:itemsPerPage>
<artist href="spotify:artist:4M5nCE77Qaxayuhp3fVn4V">
<name>Iron & Wine</name>
<popularity>0.62</popularity>
</artist>
<artist> ...
</artists>
但是,当我尝试获取大于1001的页面时,我收到一个没有艺术家的奇怪的xml,如下所示:
网址:
http://ws.spotify.com/search/1/artist?q=*a*&page=1002
结果:
<artists xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns="http://www.spotify.com/ns/music/1">
<opensearch:Query role="request" startPage="1002" searchTerms="*a*"/>
<opensearch:totalResults>0</opensearch:totalResults>
<opensearch:startIndex>100100</opensearch:startIndex>
<opensearch:itemsPerPage>100</opensearch:itemsPerPage>
</artists>
是否有一些我不知道的限制,或者它是一个错误还是其他什么? 我阅读了文档,但没有发现任何相关内容。