如何使用 Python 下载整个 Instagram 帐户的帖子和故事

尽管 Instagram 应用程序的存档功能很有用,但我们这些数据囤积者经常在寻找一种更安全、更可靠的方式来存档我们的数据。无论是因为您想保留您的关注者但从头开始,还是因为您想确保您在平台上发布的所有帖子和故事始终可供您访问,我都想分享我用于存档 Instagram 帐户的工具,包括帖子、精彩集锦甚至故事。我还使用其中一些工具来检索比赛后的用户生成内容,或者如果我想使用在其他平台上生成的内容。

与往常一样,您只需要具备 Python 的基本知识和一个库即可执行这些任务。您还可以使用目录滚动浏览文章,以找到您正在寻找的教程部分。准备好了吗?让我们开始吧。

要求

为了继续本指南,我们要做的第一件事是安装Instaloader库。该程序最初是一个用 Python 编写的命令行程序,显然也有一个 Python 模块,我们可以在我们的环境中加载和使用。

为了安装Instaloader,只需“pip install instaloader”就可以了。

从现在开始,本教程的所有 Python 文件都应以以下行开头:

import instaloader
from instaloader import Profile, Post
instance = instaloader.Instaloader()

如果您对该文档感兴趣和/或想要跳过本教程并自己浏览代码,您可以通过以下链接进行操作:https ://instaloader.github.io/as-module.html

如何使用 Python 下载单个 Instagram 帖子、标题和评论

现在我们已经完成了第一步,我们可以慢慢适应这个库最简单的用法。

为了下载单个帖子、轮播或视频,我们需要先获取其 ID。要查找帖子的 ID,我们只需查看该帖子的 URL即可。

id_post_instagram

此屏幕截图中突出显示的部分是我们要复制的ID。

在您的 Python 文件中下面共享的代码中恢复此 ID:

post = Post.from_shortcode(instance.context, “Bxe5w5EAjDS”)
instance.download_post(post,target=“folderName”)

一旦运行,您将发现这个库的美妙之处在于它还会将评论和与帖子相关的标题下载到单独的文件中,如下所示:

downloadPostAndMetadataInstagramPython-1024x791-1

函数“ download_post() ”中的参数“ target ”用于定义库将创建的用于下载帖子的文件夹的名称。如果该文件夹不存在,库将自动创建它,但如果文件夹实际上已经存在,它不会覆盖其内容。

如何使用 Python 下载 Instagram 标签帖子

假设您正在开展用户生成的活动,并希望下载所有使用您要求关注者在其帖子中使用的主题标签的帖子。那么,这个库可以帮助您。

为了做到这一点,只需运行下面指定的代码:

instance.download_hashtag(hashtag=“your_hashtag_here”,max_count=10)

如您所见,唯一需要的两个参数是“hashtag”和“max_count”。前者显然是必需的,而后者是可选的。如果您没有指定要下载的最大帖子数量,它将自动尝试下载在指定标签下找到的每个帖子。

命令完成后,您将得到一个以您的主题标签命名的文件夹,其中包含所有帖子,可按发布日期进行过滤:

download_hashtag_posts_instagram_python

如何使用 Python 下载 Instagram 个人资料精彩内容

我们在这里使用的库的一个巧妙功能是它能够圈出某人个人资料中的所有精彩内容并提取其背后的视频文件。由于平台的性质,我们需要通过我们的一个 Instagram 帐户登录。

为了做到这一点,我们将使用以下代码:

instance.login(user=“your_username”,passwd=“your_password”)

不多不少。现在我们可以通过在脚本中输入以下代码来继续下载精彩片段:

profile = Profile.from_username(instance.context, username=“username_of_interest”)
for highlight in instance.get_highlights(user=profile):
# highlight is a Highlight object
for item in highlight.get_items():
# item is a StoryItem object
instance.download_storyitem(item, ‘{}/{}’.format(highlight.owner_username, highlight.title))

您需要更改的唯一参数是“from_username()”函数的第一行。您将需要在此处输入要从哪个配置文件下载精彩内容。

一旦运行此代码,您将看到在脚本所在的位置创建了多个文件夹。每个文件夹代表一个精彩集锦类别。最后,当我下载我女朋友的帐户的精彩集锦时,我得到了以下结果:

girlfriend_account_highlights_instagram_download

如何使用 Python 下载 Instagram 故事

如果您希望保存某人的故事,则此部分适合您。 如果用户未将故事添加到他们的精彩内容中,您可能必须迅速采取行动并使用此脚本抢购您感兴趣的故事。

为了使这一部分正常工作,我们还需要在脚本的开头登录,就像上面部分一样,按照以下代码进行操作:

instance.login(user=“your_username”,passwd=“your_password”)

完成后,我们可以继续执行以下代码:

profile = Profile.from_username(instance.context, username=“username_here”)
instance.download_stories(userids=[profile.userid],filename_target=‘{}/stories’.format(profile.username))

这将创建一个漂亮的文件夹,其中包含第一行代码中参数“用户名”中提到的用户的所有可用故事。

如果一切正确,你最终会得到一个类似这样的文件夹:

download_stories_instagram_python

如何使用 Python 下载已保存的 Instagram 照片集

您可能担心您保存的 Instagram 帖子之一将被删除,或者您只想将保存的帖子集合导出到安全的地方。幸运的是,这样做非常容易。您只需按照上一节中的说明通过模块登录并运行以下代码即可:

instance.login(user=“your_username”,passwd=“your_password”)
instance.download_saved_posts()

正如您所见,这非常简单,一旦完成,您将得到您自己的“/saved”目录,其中将显示您保存的所有帖子。

instagram_download_saved_python-1024x851-1

如何使用 Python 下载整个 Instagram 帐户的帖子和视频

此部分是本文中最简单的部分之一。安装并加载库后,您可以非常轻松地在线提取任何公共 Instagram 帐户发布的全部内容。如果您感兴趣的帐户是私人帐户,则需要使用上述部分中提到的此代码登录:

instance.login(user=“your_username”,passwd=“your_password”)

如果该帐户是公开的,请注意,上面描述的步骤对于完成手头的任务来说不是必需的。

这是我用来检索任何 Instagram 帐户的每个帖子、视频和帖子轮播的代码:

instance.download_profile(profile_name=“username_here”)

如果配置文件加载非常多,这可能需要相当长的时间,但最终,您会发现自己拥有大量数据,例如:

  • 包含每篇帖子标题的 .txt 文件
  • 每篇帖子的评论线程的 .json 文件
  • 每篇文章的 .jpg 文件,创建日期即为实际发布日期
  • 以及一个 .jpg 文件作为 Instagram 帐户的个人资料图片

所有内容均可供您存档和/或分析。

download_instagram_profile_python

结论

差不多就是这样了。我希望这对你有用,希望这整本指南能帮助你克服你面临的挑战。如果它确实有帮助,我很乐意在评论中听到它,或者你也可以给我发电子邮件,我会非常感激的。

与往常一样,如果您有任何疑问,请随时通过下面的评论部分提出,以便每个人都能享受答案或通过电子邮件提出。最后,如果您想查看更多此类教程,我建议您阅读我制作的有关如何使用 Python 下载 Youtube 频道和播放列表的同类指南,或者使用下面的表格订阅我的时事通讯。