gpt4 book ai didi

python - 如何通过 http 请求在 Instagram 中获取关注者和关注列表

转载 作者:太空狗 更新时间:2023-10-29 18:09:21 57 4
gpt4 key购买 nike

我正在寻找通过 Web 请求(与 Instagram 网站上的方式相同)以 JSON 格式获取关注者和关注列表的可能性。例如,我可以通过请求登录,并获取用户信息:

def get_user_info(self, user_name):
url = "https://www.instagram.com/" + user_name + "/?__a=1"
try:
r = requests.get(url)
except requests.exceptions.ConnectionError:
print 'Seems like dns lookup failed..'
time.sleep(60)
return None
if r.status_code != 200:
print 'User: ' + user_name + ' status code: ' + str(r.status_code)
print r
return None
info = json.loads(r.text)
return info['user']

我试图查看 chrome 向服务器发送了什么请求,但没有成功。问题是:如何在没有 Instagram API 的情况下准备类似的 get 或 post 请求来检索关注者列表?

最佳答案

使用 query_hash = "58712303d941c6855d4e888c5f0cd22f"(以下)和 "37479f2b8209594dde7facb0d904896a"(以下)的 GraphQL 查询返回此信息。登录后,使用参数 query_hashvariables 对 instagram.com/graphql/query 执行 GET 查询,其中 variables 是一个 JSON-格式化的变量集 id(用户 id,在 get_user_info() 函数的返回字典中),first(页面长度,它似乎当前最大值是 50) 并且在后续请求中 after 设置为先前响应字典中的 end_cursor

或者,Instaloader库提供了一种方便的登录方式,然后以编程方式访问个人资料的关注者和关注者列表。

import instaloader

# Get instance
L = instaloader.Instaloader()

# Login or load session
L.login(USER, PASSWORD) # (login)
L.interactive_login(USER) # (ask password on terminal)
L.load_session_from_file(USER) # (load session created w/
# `instaloader -l USERNAME`)

# Obtain profile metadata
profile = instaloader.Profile.from_username(L.context, PROFILE)

# Print list of followees
for followee in profile.get_followees():
print(followee.username)

# (likewise with profile.get_followers())

除了usernamefull_nameuseridfollowed_by_viewer 等属性都在中定义>Profile 为每个 followee 返回的实例。

关于python - 如何通过 http 请求在 Instagram 中获取关注者和关注列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37658723/

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com