json 如何在Python中不使用API从用户名ID获取Instagram用户名?

ttvkxqim  于 2023-06-25  发布在  Python
关注(0)|答案(4)|浏览(104)

我试图找到一种方法来从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"}}

我已经找了几个小时的解决办法了,到目前为止还没有找到。有没有一种方法可以在不使用令牌的情况下获得相同的结果?
非常感谢!

bejyjqdl

bejyjqdl1#

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

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

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

它将返回一个JSON,其所有者为- username

c3frrgcw

c3frrgcw2#

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

curl -s https://i.instagram.com/api/v1/users/USERID/info/ | jq -r .user.username

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

import instaloader

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

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

cgh8pdjw

cgh8pdjw3#

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

5ssjco0h

5ssjco0h4#

Python库“ensta”,无需登录即可抓取Instagram数据。它使用Instagram的内部Web API来保证数据的准确性。

安装

pip install ensta

示例

对于您的用例,您可以使用 get_username 函数。

from ensta import Guest

guest = Guest()  # Guest mode doesn't require login

username = guest.get_username(12345678)  # Put userId here
print(username)

结果:

{
    "success": true,
    "username": "ronaldo"
}

相关问题