全分辨率的 Instagram 个人资料图片?

Instagram Profile Picture in Full-Resolution?

如何获取 Instagram 个人资料的全分辨率个人资料图片? (旧的 URL 方案今天停止工作)。

正则表达式='profile_pic_url_hd":"([0-9a-zA-Z._-/:]*)",'

适用于 320 像素的图片,但没有别的。 150x150 img 的前缀不同,但是 url 和 jpg 的 ID/ending 是相同的。

谢谢

好的,我找到了最终解决方案:

  1. 获取使用此linkhttps://www.instagram.com/{name}/?__a=1

    [=36的账号的user_id =]
  2. 用上面的user_id访问这个JSON-APIhttps://i.instagram.com/api/v1/users/{user_id}/info/ 全尺寸个人资料图片 link 可以在 [hd_profile_pic_url_info][url]

  3. 中找到

就是这样! :)

[编辑]

如果步骤 1 不起作用,我的 Php 解决方案获得 user-id:

$name = "{username}";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.instagram.com/$name/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
$http = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($http=="200") {
  $doc = new DOMDocument();
  $doc->loadHTML($result);
  $xpath = new DOMXPath($doc);
  $js = $xpath->query('//body/script[@type="text/javascript"]')->item(0)->nodeValue;
  $start = strpos($js, '{');
  $end = strrpos($js, ';');
  $json = substr($js, $start, $end - $start);
  $data = json_decode($json, true);
  $user_id = $data["entry_data"]["ProfilePage"][0]["graphql"]["user"]["id"];
}

我正在 HTML 文档中搜索 user-id。

如果您查看来源 html 和 运行 一个简单的查找文本搜索 logging_page_id,它将有 profilePage_,然后是一个数字。该数字是用户 ID。

例如:

logging_page_id":"profilePage_123456789

用户id是:123456789