9

Récupérer le nombre de tweets/like/buzz des pages d’un site

Pour ne pas répéter deux fois la même chose, ce script est une version amélioré de mon article précédent à savoir un script qui permet de récupérer les signaux sociaux des pages d'un site à partir d'un fichier sitemap, le tout dans un fichier CSV, quoi de mieux pour traiter ces données par la suite qu'Excel :-). Quelques heures après avoir publié cet article, @backlinker_fr me faisait découvrir Sharedcount via un tweet en indiquant que ce site permettait de connaître les indicateurs like/share/comments des principaux réseaux sociaux et pour couronner le tout, qu'une API était dispo !

Du coup, me voilà à corriger mon script précédent pour le simplifier grâce à cette API et rajouter les Digg que j'avais omis précédemment... (je n'ai pas rajouté Stumbleupon qui ne semble pas fonctionner au niveau de cette API).

signaux sociaux dans un CSV

Il faut appeler le script de cette manière: http://www.monsite.com/socialscript/script.php?priorite=0.5&pause=2&sitemap=http://www.monsite.com/sitemap.xml
J'ai rajouté dans l'URL le paramètre "pause" (en secondes) pour éviter les "user rate limit exceeded" des API officielles.

Merci au site Sharedcount pour son API.

<?php
/*
######################################
##### Signaux sociaux via sitemap ####
###### ----------------------- #######
###   Script provenant du site:    ###
###   http://www.yapasdequoi.com   ###
###                                ###
###      **  Version 2.0  **       ###
### utilise l'API sharedcount.com  ###
###                                ###
######################################
*/
socialsitemaps($_GET["sitemap"],$_GET["pause"],$_GET["priorite"]);
function geturl ($api,$url) {
$ch = curl_init();
switch ($api){
case "sharedcount":curl_setopt($ch, CURLOPT_URL,'http://api.sharedcount.com/?url='.rawurlencode($url));break;
case "xmlsitemap":curl_setopt($ch, CURLOPT_URL,$url);break;
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);$resultat=curl_exec ($ch);curl_close ($ch);
return $resultat;
}
function socialsitemaps ($sitemap,$pause,$priorite) {
if($sitemap=="" || !eregi('http://',$sitemap)) {
print 'URL incorrecte, le parametre est vide ou mal formate.<br /> Ex: http://'.$_SERVER["SERVER_NAME"].$_SERVER["PHP_SELF"].'?priorite=0.5&sitemap=http://www.monsite.com/sitemap.xml';}
else{
if (ob_get_level() == 0) ob_start();
parsesitemap($sitemap,$pause,$priorite);
}
ob_end_flush();
}
function parsesitemap ($map,$pause='5',$priorite='1') {
$xml = simplexml_load_string(geturl('xmlsitemap',$map));
$len= count($xml->url);
foreach ($xml->url as $link) {
$lien=$link->loc;
$priority=$link->priority;
if ($priority=="") $priority='1';
if($lien!="" && $priority>=$priorite){
$i++;
$sharedcountresult=geturl('sharedcount',$lien);
$counts = json_decode($sharedcountresult, true);
$facebooklike=$counts["Facebook"]["like_count"];
$facebookshare=$counts["Facebook"]["share_count"];
$facebookcomments=$counts["Facebook"]["comment_count"];
$facebookcommentsbox=$counts["Facebook"]["commentsbox_count"];
$facebooktotal=$facebooklike+$facebookshare+$facebookcomments+$facebookcommentsbox;
$twitter=$counts["Twitter"];
$googlebuzz=$counts["Buzz"];
$googleplus=$counts["GooglePlusOne"];
$linkedin=$counts["Twitter"];
$digg=$counts["Diggs"];
$total=0;$total=$facebooktotal+$twitter+$googleplus+$googlebuzz+$linkedin+$digg;
sleep($pause);
if ($i=="1") {
$filecontent.='URL;Priorite;Facebook Like;Facebook Share;Facebook Comments;Facebook Comments Box;Facebook total;Twitter;Google +1;Google Buzz;Linkedin;Digg;TOTAL;'."\n";
print '<html><head><title>Signaux sociaux des URL du sitemap '.$_GET["sitemap"].'</title></head><body style="font-family:Verdana">';
print '<br><table border="1"><tr style="font-weight:bold;"><td>URL</td><td>Priorité</td><td>Facebook Like</td><td>Facebook Share</td><td>Facebook Comments</td><td>Facebook Comments Box</td><td>Facebook total</td><td>Twitter</td><td>Google +1</td><td>Google Buzz</td><td>Linkedin</td><td>Digg</td><td>TOTAL</td></tr>';
}
if ($total!="0"){
print '<tr><td>'.$lien.'</td><td>'.$priority.'</td><td>'.$facebooklike.'</td><td>'.$facebookshare.'</td><td>'.$facebookcomments.'</td><td>'.$facebookcommentsbox.'</td><td>'.$facebooktotal.'</td><td>'.$twitter.'</td><td>'.$googleplus.'</td><td>'.$googlebuzz.'</td><td>'.$linkedin.'</td><td>'.$digg.'</td><td>'.$total.'</td></tr>';
$filecontent.=$lien.';'.$priority.';'.$facebooklike.';'.$facebookshare.';'.$facebookcomments.';'.$facebookcommentsbox.';'.$facebooktotal.';'.$twitter.';'.$googleplus.';'.$googlebuzz.';'.$linkedin.';'.$digg.';'.$total.';'."\n";
ob_flush();
flush();
}
}
else{
$len=$len-1;
}
if ($i == $len) {
file_put_contents('signauxsociaux.csv', $filecontent);
print '</table><br><br>Fichier CSV généré pour le sitemap: '.$map.': <a href="signauxsociaux.csv">signauxsociaux.csv</a><br /><br />';
print 'Vous ne me suivez pas sur Twitter ? ah! c\'est par ici <a href="http://twitter.com/aymerictwit">@aymerictwit</a>';
print '</body></html>';
}
}
}
?>

9 commentaires

  1. Ton outil est vraiment excellent. Bravo pour la trouvaille car c’est vraiment très utile pour trouver de nouvelles idées de contenus pour son propre site. Et ça fonctionne à merveille !

    Le seul hic, c’est pour les sites qui cachent leur sitemap sous un autre nom : il faut d’abord passer par un autre logiciel pour indexer et générer un sitemap (avec Xenu par exemple).

  2. Super blog et supers articles. Merci beaucoup de partager vos travaux!
    En recherche de talents, je serai intéressé par vos compétences.
    N’hésitez pas à me contacter.

  3. Excellent script, pratique pour un tableau de bord du référenceur 🙂

    Je suis fan de ton blog, en tant que développeur, ça me parle beaucoup 😉
    Certaines astuces données sont hyper puissantes (rel=follow par exemple !)

    Merci de faire partager tes connaissances !

  4. Nickel ! Merci beaucoup pour ce script. C’est clair que c’est toujours pratique d’avoir une idée de sa présence sur les réseaux sociaux aujourd’hui, surtout quand on suit ces statistiques de près pour plusieurs sites.

  5. Merci pour ce script !
    Il me sera utile notamment pour Facebook car dans les compteurs affichés sur une page de mon blog par exemple les shares et les likes sont comptabilisés ensemble…

  6. Ping : SEO Tools pour Excel | 1ère Position
  7. J’arrive pas a faire fonctionner ce script sur wamp, et comment récupérer le sitemap.xml

    Merci, varaiment je trouves pas de sol

  8. Je viens de voir un site a priori récent qui fait le même chose en ligne (frenchyseo.com). Serait-ce ton oeuvre ? ^^

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *