Получите количество подписчиков аккаунта instagram без использования api

#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