【发布时间】:2019-06-15 01:21:57
【问题描述】:
首先,这个话题已经有问题了,但没有一个能完全掩盖我的问题,因为它要么不是我需要的数据,要么不能正常工作。
InstaDP 等服务能够向您展示 Instagram 中任何个人资料图片的总部版本。现在,我想知道这怎么可能?
我进行了一些研究,并在访问https://www.instagram.com/instagramforbusiness/?__a=1 时找到了更高质量的 URL(见profile_pic_url_hd,回答here)。然而,InstaDP 似乎有一个后端,它返回一个不同的 url,重定向到更高质量的图像:https://instadp-cors-222621.appspot.com/get-hd?id=1107766105(参见hd_profile_pic_url_info,我从?__a=1 链接的结果中提取了 URL 的 ID)。我用我的个人资料对此进行了测试,并且能够以 1024x1024 的出色质量获得我自己的图像。但是,?__a=1 链接似乎只返回了我的 320x320 个人资料图片的链接。
由于 InstaDP 似乎不是唯一能够获取总部个人资料图片的玩家,因此我继续比较了这些玩家的后端。似乎每个服务似乎都有一个指向同一 Instagram 帐户的总部个人资料图片的不同 URL。所以我的结论是 Instagram API 参与了这一切。
所以我在https://www.instagram.com/developer/ 创建了一个客户端密钥。我还能够获取我的身份验证令牌并确定我为 X-CSRFToken 标头登录的 csrftoken。现在我的问题是如何继续?
我找到了一些关于这个主题的答案,说明我应该请求https://i.instagram.com/api/v1/users/1107766105/info/,但它总是以 HTML 形式返回登录页面。
我之前尝试使用我的 Chrome cookie 并登录 Instagram 的 REST 客户端,我尝试将我的 HTTP 标头设置为 X-CSRFToken:<mycookietoken> 和 Content-Type:application/json。 (如果我没有设置 CSRFToken 它会出错,所以我需要添加它,但是如果设置了标题,我会再次获得 HTML,即使 CSRFToken 是正确的。当我没有收到错误时CSRFToken 是错误的。)
我还尝试设置 Origin、Referer 和 Host 来欺骗 Instagram,使其相信请求来自其自己的窗口位置,但没有运气。设置Host 甚至会导致 400 错误请求。即使在 URL 中添加我的访问令牌也没有效果 (?access-token=########)。
总结一下我的问题,这些服务是如何从cdninstagram 服务器获得如此高质量、高达 1024x1024 的个人资料图片的?
【问题讨论】:
-
你找到解决办法了吗?
-
找到解决办法了吗?