如何在Python中没有API的情况下从用户名ID获取Instagram用户名?

时间:2017-07-26 16:07:04

标签: python json python-2.7 instagram instagram-api

我正在尝试找到一种从Python中的用户名ID获取Instagram用户名的方法。 到目前为止我发现的是:

https://api.instagram.com/v1/users/[USER-ID]?access_token=[YOUR-ACCESS-TOKEN]

我有一个令牌号码,但它仅适用于添加到沙箱的用户。对于其他用户,我收到以下错误:

{"meta": {"code": 400, "error_type": "APINotFoundError", "error_message": "this user does not exist"}}

到目前为止,我正在寻找解决方案几个小时没有运气。 有没有办法在不使用令牌的情况下达到相同的结果?

非常感谢!

3 个答案:

答案 0 :(得分:4)

将浏览器指向https://i.instagram.com/api/v1/users/USERID/info/(用户ID替换USERID)。它返回一个JSON,其中字段user.username是该用户的用户名。安装了curl和jq后,此shell oneliner将直接返回用户名:

import instaloader

L = instaloader.Instaloader()
profile = instaloader.Profile.from_id(L.context, ID)
print(profile.username)

或者,Instaloader package提供了一种方便的方式来获取给定ID的用户名,而无需使用官方的Instagram API。

owner.username

它的工作原理是查询其中一个配置文件的帖子(只需要配置文件的ID),获取该帖子的元数据(instagram.com/p/SHORTCODE),然后返回该帖子的1.8值。

答案 1 :(得分:3)

在我的情况下,我从tagFeed获取数据,所以我有图片代码。如果您有任何用户帖子的图片代码,那么您可以获得这样的用户名

https://www.instagram.com/p/picCODE/?__a=1

example: https://www.instagram.com/p/BaGce-NlMg7/?__a=1

它将返回一个带有所有者的JSON - 用户名

答案 2 :(得分:0)

不,不幸的是你不能。您需要具有public_content权限的令牌,为此,您需要有一个实时应用(不在沙盒中)。