我在代码中尝试了旧的请求URL,但没有成功:
response = requests.get(f"https://www.instagram.com/api/v1/users/web_profile_info/?username={username}", headers=header)
获取用户详细信息的任何其他方式,尤其是检查用户是私有还是公共
如果您不使用匹配的用户代理标头,Instagram 将尝试阻止您。虽然并不完美,并且可能很快就会让你的 IP 被禁止,但这是一个有效的修复:
profile = requests.get(
url="https://www.instagram.com/api/v1/users/web_profile_info/?username=" + username,
headers={
"user-agent": "Mozilla/5.0 (Linux; Android 12; T431D Build/SP1A.210812.016; wv) AppleWebKit/537.36 "
"(KHTML, like Gecko) Version/4.0 Chrome/117.0.0.0 Mobile Safari/537.36 Instagram "
"312.1.0.34.111 Android (31/12; 240dpi; 480x888; TCL; T431D; Rio; mt6761; it_IT; 548323740)"
})
is_private = profile.json()['data']['user']['is_private']