PHP Instagram取消加载更多按钮问题

时间:2018-11-08 06:16:10

标签: php web-scraping instagram

我正在执行一个脚本,以从用户名中抓取Instagram帖子,但是我在加载更多功能以及如何获取下12个帖子方面遇到问题。

到目前为止,这是我的职能:

function scrape_insta_user_images($username){
    $insta_source = file_get_contents('https://www.instagram.com/'.$username.'/'); // instagram user url
    $shards = explode('window._sharedData = ', $insta_source);
    $insta_json = explode(';</script>', $shards[1]); 
    $insta_array = json_decode($insta_json[0], TRUE);
    $results_array = $insta_array;
    $image_array= array(); // array to store images.
    $json = array();
    $json['profile_pic']    = $results_array['entry_data']['ProfilePage'][0]['graphql']['user']['profile_pic_url'];
    $json['has_next_page']  = $results_array['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['page_info']['has_next_page'];
    $json['max_id']         = $results_array['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['page_info']['end_cursor'];

    $limit = 13;

    for ($i=0; $i < $limit; $i++) {     
                if(isset($insta_array['media'][$i])){
                    $latest_array = $insta_array['media'][$i];
                    $json['images'][]  = $latest_array['code'];
                }
    }

    $limit = 56; 
    for ($i=0; $i < $limit; $i++) {     
        if(isset($results_array['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges'][$i])){
            $latest_array = $results_array['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges'][$i]['node'];
            $json['images'][] = $latest_array['shortcode']; // thumbnail and same sizes 
        }
    }
    return $json;
}

它还返回一堆标记或end_cursor值。但是我不知道要发送什么参数来获取下12个帖子。 Instagram向此类URL发出请求:

https://www.instagram.com/graphql/query/?query_hash=XXX&variables={"id":"XXX","first":12,"after":"XXX"}

任何帮助将不胜感激!

0 个答案:

没有答案