#php #json #web-scraping
Вопрос:
Я пытаюсь получить количество подписчиков аккаунта Instagram с помощью этого:
<?php
$otherPage = 'nasa';
$response = file_get_contents("https://www.instagram.com/nasa/?__a=1");
if ($response !== false) {
$data = json_decode($response, true);
if ($data !== null) {
$follows = $data['graphql']['user']['edgeedge_followed_by_follow']['count'];
$followedBy = $data['graphql']['user']['']['count'];
echo $follows . ' and ' . $followedBy;
}
}
?>
Но это, похоже, не работает, потому что переменная $data равна нулю, поэтому это условие является ложным:
if ($data !== null) {
$follows = $data['graphql']['user']['edgeedge_followed_by_follow']['count'];
$followedBy = $data['graphql']['user']['']['count'];
echo $follows . ' and ' . $followedBy;
}
Кто-нибудь может сказать мне, почему?
Комментарии:
1. Я пробовал ваш код,
$data
неnull
был , но я получил кучу уведомлений о попытке доступа к неопределенным индексам, так что, похоже, вы не получили правильную структуру.2.
edgeedge_followed_by_follow
Индекс, по — видимому, является виновником. Я предполагаю, что вы случайно вставили правильный индекс в неправильный, вместо того, чтобы заменить его. А затем вы оставили нижний индекс пустым (гдеedge_follow
и должно быть).3. И после нескольких попыток я вошел
null
$data
. Когда я захожу на страницу, она просит меня войти в систему. Так что, я думаю, доступ ограничен.
Ответ №1:
ваш ответ $нет JSON
, он возвращается Content-Type: text/html; charset=utf-8
они отключили эти устаревшие API , см. http://instagram.com/developer