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

如何用Python的Instaloader仅下载Instagram账号的新图片?

解决Instaloader仅下载新内容(动态/快拍)的问题

要实现仅下载目标账号的新动态和快拍,核心是正确使用LatestStamps类记录上次下载的时间戳,让Instaloader只抓取该时间点之后的内容。下面是修改后的完整可运行代码,以及关键细节说明:

完整代码

import instaloader
from instaloader import LatestStamps

# 初始化Instaloader,配置下载参数
ig = instaloader.Instaloader(
    save_metadata=False,
    download_video_thumbnails=False,
    download_only_new=True  # 配合LatestStamps,确保只下载未获取过的内容
)

# 指定存储时间戳的文件(首次运行自动创建,后续自动读取)
timestamp_file = "ig_download_timestamps.json"
ig.latest_stamps = LatestStamps(timestamp_file)

# 你的Instagram账号信息
USER = "你的账号"
PASSWORD = "你的密码"

# 获取目标账号名称
target_profile = input("输入要下载的Instagram账号名: ")

print("开始下载新内容...")

# 登录账号(私人账号需确保已关注)
ig.login(USER, PASSWORD)

# 下载目标账号的动态+快拍,仅下载新内容
ig.download_profile(
    target_profile,
    download_stories=True,  # 开启快拍下载,若只需动态可设为False
    profile_pic=False
)

# 手动保存时间戳(Instaloader通常会自动保存,手动调用更稳妥)
ig.latest_stamps.save()

print("下载完成!仅同步了新增内容。")

关键细节说明

  • LatestStamps的作用:它会在指定的JSON文件中记录每个目标账号的最后下载时间戳,下次运行时自动跳过该时间点之前的所有内容。
  • 首次运行逻辑:如果时间戳文件不存在,会下载目标账号的全部历史内容,同时生成时间戳文件;后续运行只抓取新增内容。
  • 参数搭配:download_only_new=True是额外保障,即使时间戳记录有偏差,也不会重复下载已存在的文件。
  • 单独下载快拍/动态:
    • 仅下载快拍:将download_profile的参数改为download_stories_only=True
    • 仅下载动态:去掉download_stories参数(默认False)

注意事项

  • 若目标是私人账号,登录的账号必须已关注该账号,否则无法获取内容。
  • 不要手动修改时间戳文件,否则会破坏下载逻辑;若要重新下载全部内容,直接删除时间戳文件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:50:55