You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Instagram爬取脚本中sleep()函数的正确放置位置咨询

正确的sleep位置分析

首先明确你的核心需求:每次调用api.user_info()这个API接口之后,间隔60秒再发起下一次请求,所以方式一才是符合需求的正确写法,具体分析如下:

  • 方式一中,sleep(60)被放在循环内部的API调用之后,意味着每完成一个用户的biography获取,就暂停60秒再处理下一个用户,完美实现了“每次API调用后延长间隔”的目标,能有效降低被Instagram反爬机制限流、封禁的风险。
  • 方式二中,sleep(60)是在整个get_bios函数执行完毕后才执行,这时候所有的API请求已经连续完成了,根本起不到间隔单次请求的作用,完全不符合你的需求。

额外优化建议

如果担心api.user_info()可能抛出异常导致sleep逻辑不执行,可以增加异常捕获,确保即使某次请求失败,后续的间隔逻辑依然生效:

from time import sleep

def get_bios(followers):
    bios = []
    for follower in followers:
        follower_id = follower[0]
        try:
            bio_content = api.user_info(follower_id)['user']['biography']
            bios.append([follower_id, bio_content])
        except Exception as e:
            print(f"获取用户{follower_id}的biography失败: {str(e)}")
            bios.append([follower_id, "获取失败"])
        finally:
            sleep(60)
    return bios

另外,推荐使用append()代替+= [[...]]来追加列表元素,语义更清晰,性能也更稳定。

内容的提问来源于stack exchange,提问作者wizkids121

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 08:55:17