我想获取关注者列表。我正在开发一个拥有 48.2K 关注者的页面。这是我的网址
https://i.instagram.com/api/v1/friendships/X XX/followers/?count=12&search_surface=follow_list_page
我将此 URL 的输出作为 JSON,然后使用 Python 脚本来过滤用户名。
我的 JSON 文件示例:https://linkode.org/#481s8ac3FmDIgHttTkLHW3
我的Python脚本:
import json
f = open('data.json')
data = json.load(f)
for i in data['users']:
print(i["username"])
f.close()
一切都很好。它将显示关注者列表,但不是全部。可以更改
count
值,例如 https://i.instagram.com/api/v1/friendships/X XX/followers/?count=99999&search_surface=follow_list_page
,即使现在它也没有给我们完整的关注者列表(48.2K)。知道如何获得关注者的完整列表吗?
您可以使用 while 在脚本中进行循环,直到滚动浏览用户的所有关注者
import requests
def get_all_following(user_id, cookie):
base_url = f"https://i.instagram.com/api/v1/friendships/{user_id}/following/"
params = {'count': 12}
followers = []
while True:
response = requests.get(base_url, params=params, headers={'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Instagram 105.0.0.11.118 (iPhone11,8; iOS 12_3_1; en_US; en-US; scale=2.00; 828x1792; 165586599)', 'Cookie': cookie})
data = response.json()
if not data.get('users'):
break
followers.extend(data['users'])
if 'next_max_id' in data:
params['max_id'] = data['next_max_id']
else:
break
return followers
# Replace these with your actual values
user_id = 'USER ID HERE'
cookie = 'your_cookie_string_here'
followers_list = get_all_following(user_id, cookie)
print(followers_list)