Instagram Story Scraper PHP

我建立了一个小的Instagram故事刮刀,但我不能让它工作...我可能只是太累了。我已经尝试了一切,但自己无法解决问题

每次我用Wamp运行它时,我都会得到相同的错误

http://img3.mukewang.com/631320e90001640010380145.jpg

这是我的索引.php文件


<?php

require_once('instagramStory.php');

$story = new instagram_story();

echo $story->getStory("garyvee");

?>

这是instagramStory.php


<?php

class instagram_story{

    protected function file_get_contents_curl($url){

        $cookies = dirname(__FILE__)."/cookie.txt" ;

        $curl = curl_init();

        curl_setopt ($curl, CURLOPT_URL, $url);

        curl_setopt ($curl, CURLOPT_FOLLOWLOCATION, 1);

        curl_setopt ($curl, CURLOPT_COOKIEFILE, $cookies);

        curl_setopt ($curl, CURLOPT_RETURNTRANSFER, true);

        $answer = curl_exec($curl);

        curl_close($curl);

        return $answer;

    }

    public function getStory($username){

        $url = file_get_contents("https://www.instagram.com/$username/");

        $json = '/sharedData\s=\s(.*[^\"]);<.script>/ixU';

        preg_match_all($json, $url, $jsondata, PREG_SET_ORDER, 0);

        $array = json_decode($jsondata[0][1], true);

        $user_id = $array['entry_data']['ProfilePage']['0']['graphql']['user']['id'];

        $stories = $this->file_get_contents_curl("https://www.instagram.com/graphql/query/?query_hash=de8017ee0a7c9c45ec4260733d81ea31&variables=%7B%22reel_ids%22%3A%5B%22$user_id%22%5D%2C%22tag_names%22%3A%5B%5D%2C%22location_ids%22%3A%5B%5D%2C%22highlight_reel_ids%22%3A%5B%5D%2C%22precomposed_overlay%22%3Afalse%2C%22show_story_viewer_list%22%3Atrue%2C%22story_viewer_fetch_count%22%3A50%2C%22story_viewer_cursor%22%3A%22%22%7D");

        $data = json_decode($stories, true);

        $stories = $data['data']['reels_media']['0']['items'];

        $_story = [];

        foreach ($stories as $story) {

            $vid = 'video_resources';

            if (!array_key_exists($vid, $story)) {

                $_story [] = $story['display_url'];

            } else {

                $_story [] = $story['video_resources'][0]['src'];

            }

        }

}

?>


慕田峪4524236
浏览 241回答 2
2回答

LEATH

我正在与你检查同样的问题。显然,这是因为命令“foreach”正在访问一个空数组。我仔细检查了数据,发现它是空的,因为它无法从instagram网站接收当前数据。$stories当我尝试访问由程序在我自己的浏览器上创建的URL并记录ins帐户时,它可以正常工作。所以问题是因为代码找不到当前的cookie。您应该在登录instagram网站后复制cookie,并将文件与.php文件放在同一文件夹中。$cookies = dirname(__FILE__)."/cookie.txt" ;cookie.txt

至尊宝的传说

您收到该错误是因为您正在尝试循环访问不是数组的内容。所以在第22行,你正在这样做:$stories = $data['data']['reels_media']['0']['items'];这显然是不正确的。尝试看看你得到什么输出,然后从那里开始。如果您仍在努力发布var_dump的结果。var_dump($data);
打开App,查看更多内容
随时随地看视频慕课网APP