首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在一定数量的请求之后,Spotipy会中断吗?打API太多了吗?

在一定数量的请求之后,Spotipy会中断吗?打API太多了吗?
EN

Stack Overflow用户
提问于 2022-01-31 11:44:24
回答 1查看 478关注 0票数 1

我有一本剧本,大约运行了1小时。

df是我从自己的Postgres数据库中查询的行创建的数据框架。我将对此进行迭代,以获得artist_name值并进行API调用。

那张桌子上有47k条记录。

一个多小时后,剧本就不再给我任何回应了。没有错误。

断线是results = artist_albums(...)

在运行之前放置一个断点(),但一旦该行运行,它将停止。没有状态错误429等等..。

我对Spotipy API的影响太大了吗?

代码语言:javascript
代码运行次数:0
运行
复制
for idx, val in enumerate(df['artist_name']):

    #get albums for each artist  
    results = artist_albums('spotify:artist:'+df['artist_name'], album_type='album')
    albums = results['items']
    while results['next']:
        results = spotify.next(results)
        albums.extend(results['items'])

    sleep(0.5)

    for album in albums:
        print(album['name'])
        try:
            q = (album['name'],
            album['id'],
            album['uri'],
            album['release_date'],
            album['release_date_precision'],
            album['total_tracks'],
            album['artists'][0]['id'],
            album['type'],
            album['external_urls']['spotify']
            )
            )
            cur.execute("""insert into schema.table values (
            %s, %s, %s, %s, %s,
            %s, %s, %s, %s)""", q)
            conn.commit()
    ```
EN

回答 1

Stack Overflow用户

发布于 2022-02-01 14:42:50

您可能已经访问了Spotiy的利率限值,它在30秒滚动窗口中工作。

如果您的应用程序在短时间内发出了大量Web请求,那么它可能会收到Spotify的429个错误响应。这表示您的应用程序已达到我们的Web速率限制。Web有速率限制,以保持API的可靠性,并帮助第三方开发人员以负责任的方式使用API。Spotify的API速率限制是根据应用程序在30秒滚动窗口中调用Spotify的次数来计算的。

避免这种情况的一种方法是在API调用之间引入一些等待时间,例如使用time.sleep,即:

代码语言:javascript
代码运行次数:0
运行
复制
import time
time.sleep(10) # sleeps for 10 seconds
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70925407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档