Instaloader 基础使用指南:高效下载Instagram内容
项目概述
Instaloader 是一个功能强大的 Python 工具,专门用于从 Instagram 下载各种类型的内容。它支持下载公开和私密账户的图片、视频、故事、高光时刻、标签内容等多种媒体资源,同时还能获取相关的元数据、评论和标题信息。
安装准备
在开始使用 Instaloader 之前,需要确保已正确安装 Python 环境(建议 3.7 或更高版本),然后通过 pip 安装 Instaloader:
pip install instaloader
基础下载功能
下载用户全部内容
要下载某个用户的所有图片和视频(包括头像),使用以下命令:
instaloader 用户名
可以同时指定多个用户:
instaloader 用户1 用户2 用户3
增量更新内容
当需要更新已下载的内容时,可以使用快速更新模式:
instaloader --fast-update 用户名
此模式会在遇到第一个已下载的内容时停止,适合定期更新。
或者使用时间戳记录方式:
instaloader --latest-stamps -- 用户名
这种方式会记录上次下载时间,只下载新增内容,即使移动或删除了本地文件也能保持同步。
下载私密账户
要下载私密账户内容,需要登录:
instaloader --login=你的用户名 目标用户名
首次登录后会保存会话 cookie,后续使用时可自动登录,无需重复认证。
下载目标类型详解
Instaloader 支持多种下载目标:
-
用户资料 (
用户名
)- 可附加选项下载故事、高光时刻、被标记内容等
- 自动检测并处理用户名变更
-
标签内容 (
"#标签名"
)- 需要登录
- 下载带有特定标签的所有公开内容
-
地点内容 (
%地点ID
)- 需要登录
- 下载标记在特定地点的内容
-
关注用户的故事 (
:stories
)- 需要登录
- 下载你关注用户当前可见的故事
-
个人主页内容 (
:feed
)- 需要登录
- 下载你个人主页的feed内容
-
收藏内容 (
:saved
)- 需要登录
- 下载你标记为收藏的内容
-
用户关注列表 (
@用户名
)- 需要登录
- 下载指定用户关注的所有用户资料
-
单篇帖子 (
-- 帖子短代码
)- 直接下载特定帖子
- 例如:
instaloader -- -B_K4CykAOtf
高级下载选项
--comments
:同时下载评论--geotags
:下载地理位置信息(需登录)--stories
:下载用户故事--highlights
:下载用户高光时刻--tagged
:下载用户被标记的内容--reels
:下载Reels视频--igtv
:下载IGTV视频
文件命名与组织
Instaloader 提供了灵活的文件命名和组织方式:
目录结构控制
使用 --dirname-pattern
指定目录命名模式:
{target}
:目标名称{profile}
:内容所有者用户名
文件命名控制
使用 --filename-pattern
指定文件命名模式:
{date_utc}
:UTC时间(可格式化){shortcode}
:帖子短代码{profile}
:所有者用户名{mediaid}
:媒体ID{filename}
:Instagram内部文件名
示例:按年组织内容
instaloader --dirname-pattern={profile} --filename-pattern={date_utc:%Y}/{shortcode} 用户名
内容过滤功能
通过 --post-filter
和 --storyitem-filter
可以设置下载条件:
常用过滤条件
- 时间过滤:
date_utc <= datetime(2023,1,1)
- 视频过滤:
not is_video
- 点赞数过滤:
likes > 100
- 标签过滤:
'cute' in caption_hashtags
- 自己点赞的内容:
viewer_has_liked
示例:下载点赞超过100或自己点赞的内容
instaloader --login=你的用户名 --post-filter="likes>100 or viewer_has_liked" 用户名
元数据管理
Instaloader 会自动保存内容的元数据:
- 默认会保存标题到
.txt
文件 - 使用
--post-metadata-txt
自定义元数据保存内容
示例:保存点赞数和评论数
instaloader --post-metadata-txt="{likes} likes, {comments} comments." 用户名
自动化与计划任务
Instaloader 适合作为定时任务运行:
- 首先创建会话文件:
instaloader --login=你的用户名
- 然后在cronjob中使用:
instaloader --login=你的用户名 --quiet 目标...
会话文件默认保存在 ~/.config/instaloader/session-你的用户名
。
错误代码说明
- 0:成功
- 1:非致命错误(部分内容未下载)
- 2:命令行错误
- 3:登录错误
- 4:致命下载错误
- 5:用户中断
进阶开发
对于更复杂的需求,Instaloader 提供了完整的 Python API,允许开发者通过编程方式访问 Instagram 数据和功能,实现高度定制化的操作。
通过掌握这些功能,你可以高效地管理和备份 Instagram 上的各种内容,无论是个人收藏还是研究分析,Instaloader 都能提供强大的支持。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考