Codes PHP & CURL
Vous voulez vous-aussi intégrer le classement du concours sur votre site web ? Ci-dessous, quelques codes PHP & CURL qui vous permettront de récupérer dans un tableau "$serp" le classement en Live de la Serp Qwant sur le mot clé Qwanturank, puis de l'exploiter comme bon vous semble (Affichage en live, enregistrement pour historique du concours, ou évolution des positions de chaque participant au fur et à mesure, ou toute autre usage.
Si vous voulez l'utiliser, pas de souci, servez-vous, et envoyez-moi un joli backlink retour et on sera quitte :)
<?php
//on déclare un tableau qui contiendra les résultats
$serp=array();
//et un tableau qui ne contiendra que les NDD des résultats, dédoublonnés
$ndd_array=array();
// on indique le nombre de pages de résultats à sonder
$nbdepage=10;
for($x=1;$x<=$nbdepage;$x++)
{
//on instancie l'URL de la recherche, en partant sur la version Lite de Qwant
if($x==1)
$url = 'https://lite.qwant.com/?q=qwanturank&t=web';
else
$url = 'https://lite.qwant.com/?q=qwanturank&t=web&p='.$x;
$ch = curl_init();
$timeout = 5;
// on definit le user agent de la requête
$userAgent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36";
//on lance la requête http avec le bon user agent et la bonne langue, et on récupère le contenu de la page x
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent );
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Accept-Language: fr']);
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
// on construit un document DOM avec ce qu'on a récupéré
$doc = new DOMDocument();
@$doc->loadHTML($file_contents);
$xpath = new \DOMXpath($doc);
//on récupère les URLs des domaines avec un Xpath
$results = $xpath->query('//*[@class="title"]/a/@href');
foreach($results as $container) {
$xline=explode("%3D/",$container->nodeValue);
$line=urldecode($xline[1]);
$line=substr($line, 0, strrpos($line, '?position='));
//ici, un peu de traitement pour virer les http, https, sauts de lignes et retours chariot
$line=str_replace("http://","",$line);
$line=str_replace("https://","",$line);
$tab = array( CHR(13) => "", CHR(10) => "" );
$line = strtr($line,$tab);
//bloc qui dédoublonne
$ndd=explode("/",$line);
$domain=str_replace("www.","",$ndd[0]);
if(!in_array($domain,$ndd_array))
{
//on construit le tableau de noms de domaines dédoublonnés
array_push($ndd_array,$domain);
}
array_push($serp,$line);
}
curl_close($ch);
}
//AFFICHAGE
// on affiche toute la Serp //////////
echo "<h2>SERP Complète</h2>";
$r=1;
foreach($serp as $result)
{
$string=explode("/",$result);
echo $r." - ".$result."<br/>";
$r++;
}
//////////////////////////////////////////////////////////////////
echo "<p>Script codé par <a href=\"https://twitter.com/Nick_argall\" target=\"_blank\">Nick Ar Gall</a>
pour le <a href=\"https://qwanturank-le-concours.com/\" target=\"_blank\" >Concours Qwanturank</a></p>";
echo "<hr/>";
// on affiche uniquement les noms de domaines dédoublonnés
echo "<h2>Noms de domaines (dédoublonnés) </h2>";
$n=1;
foreach($ndd_array as $domaine)
{
echo $n." - ".$domaine."<br/>";
$n++;
}
echo "<p>Script codé par <a href=\"https://twitter.com/Nick_argall\" target=\"_blank\">Nick Ar Gall</a>
pour le <a href=\"https://qwanturank-le-concours.com/\" target=\"_blank\" >Concours Qwanturank</a></p>";
//////////////////////////////////////////////////////////////////
?>
Normalement ça marche pas trop mal, faites-en bon usage.