2017-07-27 1 views
0

est-il un moyen d'obtenir page instagramthe contents of an post en utilisant de simples phpPHP - Obtenez le contenu d'un message de page instagram en utilisant php simple,

je l'ai fait quelques recherches et je l'ai trouvé ce script

$url = 'https://www.instagram.com/pagename/'; 
$str = file_get_contents($url); 
$count = 0; 
if(preg_match('#followed_by": {"count": (.*?)}#', $str, $match)) { 
    $count = $match[1]; // get the count from Regex pattern 
    } 
echo $count; 

mais il ne devient que le numéro de suiveur est-il un moyen pour obtenir le contenu d'un poste Instagram utilisant le même concept?

+0

On ne sait pas ce que vous demandez. Est-ce que "post data" signifie des données HTTP POST, ou le contenu d'un post Instagram? Quoi qu'il en soit, cela semble être une mauvaise façon de faire les choses. Il existe des bibliothèques et des API pour interagir avec Instagram via les services Web - Google les. – Andy

+0

Maintenant qu'il y a des APIs mais je veux maintenant s'il y a une option de le faire comme l'exemple ci-dessus – M0ns1f

+2

Tout ce que vous faites dans l'exemple ci-dessus est de lire la source HTML complète d'une URL puis de chercher un bit de balisage pour essayer d'extraire du contenu. Donc, la réponse est, oui, si vous pouvez comprendre comment extraire le peu de contenu que vous voulez. Mais c'est une façon terrible et peu fiable de le faire - par exemple, si Instagram change son balisage de page, votre application va se casser. Utilisez une bibliothèque appropriée et faites les choses correctement, par ex. https://github.com/cosenary/Instagram-PHP-API – Andy

Répondre

0

j'ai pris des conseils @Andy comme il est pas fiable et il est sale af

Voilà donc ce que j'ai trouvé aller sur la html

Instagram changez le balisage de la page, votre application va se casser.

est ce

$username = 'username'; 
    $instaResult= 
    file_get_contents('https://www.instagram.com/'.$username.'/media/'); 
    //decode json string into array 

    $data = json_decode($instaResult); 

foreach ($data as $posts) { 
    foreach($posts as $post){ 
    $postit = (array) json_decode(json_encode($post), True); 
    /* get post text and image */ 
       echo '<p>' .$postit["caption"]["text"].'</p>'; 
       echo '<img src="'.$postit["images"]["standard_resolution"]["url"].'" />'; 
       echo "</br>-----------</br>"; 
    } 
    } 
0

Voici un code qui fonctionne (aujourd'hui). Mais comme @Andy dit, ce n'est pas fiable et il est sale af :)

<?php 

$source = file_get_contents("https://www.instagram.com/p/POST_ID/"); 

preg_match('/<script type="text\/javascript">window\._sharedData =([^;]+);<\/script>/', $source, $matches); 

if (!isset($matches[1])) 
    return false; 

$r = json_decode($matches[1]); 

print_r($r); 

// Example to get the likes count 
// $r->entry_data->PostPage[0]->graphql->shortcode_media->edge_media_preview_like->count