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

écrit par Aymeric

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>';
}
}
}
?>

écrit dans Réseaux Sociaux, Scripts SEO par Aymeric | 9 commentaires

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

  • Daniel Roch dit:
  • Marc Lefebvre dit:
  • Thomas dit:
  • Maximilien dit:
  • amin dit:
  • SEO Tools pour Excel | 1ère Position dit:
  • james dit:
  • Thibaud dit:
Ajoutez un nouveau commentaire