无需“Instagram Graph Api”即可获取 instagram 完整个人资料信息
Posted
技术标签:
【中文标题】无需“Instagram Graph Api”即可获取 instagram 完整个人资料信息【英文标题】:Get instagram full profile information without "Instagram Graph Api" 【发布时间】:2021-03-04 21:54:13 【问题描述】:我想从 Instagram 用户那里获取一些数据。
所以我使用了 Instagram Basic Display Api,我可以收到的个人资料数据如下:
用户名 媒体计数 帐户类型但我想要这些数据:
用户名 姓名 媒体计数 个人资料图片 关注人数 关注人数如果没有 Instagram Graph API(以任何方式)在 c# 中,我不知道如何获得这些数据?
或者有什么方法可以通过WebClient
类或类似的方法获取这些数据?
@Eehab 答案更新:我在此示例中使用 RestClient
和 WebClient
,它们都给出了相同的结果。
现在查看WebClient
示例:
WebClient client = new WebClient();
string page = client.DownloadString("https://www.instagram.com/instagram/?__a=1");
Console.WriteLine(page);
Console.ReadKey();
并查看此代码的图像here。
现在看到上面代码的结果here
我也知道,这个link 仅供登录用户访问,我已经在 Chrome 中登录我的 Instagram 帐户,但我认为 WebClient
也需要登录。
【问题讨论】:
【参考方案1】:您可以使用开放 API 来做到这一点,例如:
https://www.instagram.com/instagram/?__a=1
来自邮递员代码的示例代码:
var client = new RestClient("https://www.instagram.com/instagram/?__a=1");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
你也可以使用 HttpClient 类,如果你想使用 WebClient 你可以用 WebClient.DownloadString 方法虽然我不建议使用 WebClient 进行这种抓取,但请记住 Instagram 可能会阻止您,如果阻止您,您需要住宅代理绕过阻止。
响应为json数据,使用Json.Net或类似库反序列化。
只需在给定的 url 中用你想要的任何用户名替换 instagram。
【讨论】:
嗨,谢谢您的解决方案。当我去这个URL它给我一个完整的Json用户信息但是当我通过你的代码或WebClient
或post man应用程序请求它给我一个无用的html。
我刚刚测试并工作了! ,您是否使用相同的 IP 进行浏览和代码请求?
@Ehab 是的,我的 IP 对两者都是相同的。我认为这个 URL 已经预加载了 javascript,并且必须在执行之前加载。你确定你现在测试它并且工作正常吗?
这不是javascript渲染!这是你可以在纯套接字请求中获得的 json 数据,给我看你的 webclient 代码,我会在我的机器上测试它。
var client = new RestClient("https://www.instagram.com/instagram/?__a=1"); client.Timeout = -1; var request = new RestRequest(Method.GET); IRestResponse response = client.Execute(request);
这是你的代码,当我 WriteLine
response.Content
它显示给我 html 文件而不是 json。这是该 html 的图像:imgur.com/kwaAEik以上是关于无需“Instagram Graph Api”即可获取 instagram 完整个人资料信息的主要内容,如果未能解决你的问题,请参考以下文章
喜欢通过 Instagram Graph API 发布的帖子?
没有 Facebook 登录的用户 Instagram Graph API