Récupérer le nombre de tweets/like/buzz des pages d’un site
6 Sep 2011
écrit parPour 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).
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&eacute;</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&eacute;n&eacute;r&eacute; 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 |