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

Instaloader库下载Instagram帖子时抛出'date_utc'错误的解决方法

问题原因与修复方案

报错原因

  1. 参数类型不匹配:loader.download_post()要求第一个参数是Instaloader的Post对象,你直接传入帖子URL字符串,程序会把URL当成Post对象去读取date_utc属性,自然找不到该属性,触发报错。
  2. 目标文件夹参数冗余:target='#posts'里的#是多余的,会导致创建的文件夹名称带#,不符合常规文件命名规范。

修复步骤与修正代码

核心修正点

  • 从帖子URL中提取短代码,再转换为Post对象
  • 修正目标文件夹参数格式
  • (可选)下载私密帖子需提前登录Instagram账号

完整修正代码

import instaloader
from urllib.parse import urlparse

def download_instagram_post(post_url):
    loader = instaloader.Instaloader()
    
    # 可选:下载私密帖子时取消注释,填入账号信息
    # loader.login("你的Ins用户名", "你的Ins密码")
    # 推荐用会话文件登录(首次登录后自动保存,无需重复输密码)
    # loader.load_session_from_file("你的Ins用户名")

    try:
        # 从URL中提取帖子短代码(Ins帖子URL格式为https://instagram.com/p/短代码/)
        parsed_url = urlparse(post_url)
        shortcode = parsed_url.path.split('/')[2]
        # 将短代码转换为Post对象
        post = instaloader.Post.from_shortcode(loader.context, shortcode)
        # 下载帖子,目标文件夹设为posts
        loader.download_post(post, target='posts')
        print("Post downloaded successfully!")
    except Exception as e:
        print(f"Error: {str(e)}")

post_url = input("URL: ")
download_instagram_post(post_url)

额外说明

  • 短代码提取逻辑:Instagram帖子URL的p/后面的字符串就是短代码,通过拆分URL路径即可获取。
  • 登录安全性:使用load_session_from_file会在首次登录后生成会话文件,后续运行无需输入密码,避免明文密码暴露。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 23:32:18