Jeu Référencement

Google Wonder Wheel PHP Script

Ecrit par admin le Samedi 13 juin 2009 à 14:27 - Catégorie Google, Scripts PHP

Google a sorti, de son lab., il y a quelques semaines maintenant, une option nommée Google Wonder Wheel qui permet à partir d’un mot-clé donné de trouver des mots-clés connexes qui ont un lien sémantique avec le mot-clé recherché. Les résultats sont présentés sous forme cartographique dans une animation flash.

Cette fonctionnalité n’est pas disponible dans toutes les langues pour le moment, on la retrouve sur google.com, google.cn et certainement d’autres mais pas sur google.fr

Il est quand même possible d’obtenir des résultats pour des mots français, on peut saisir un mot-clé uniquement français, par exemple, poker retournera des mots apparentés anglais, alors que poker gratuit retournera des mots-clés connexes français, les mots avec accents renverront des mots-clés français, exemple crédit versus credit.

Voici quelques screenshots pour voir la Google Wonder Wheel en action :

Pour accéder à Google Wonder Wheel, il faut aller sur google.com et cliquer sur show options :

show options google

Ensuite on clique sur wonder wheel (colonne de gauche vers le bas) et on saisit notre mot-clé, ici je prend comme exemple référencement :

referencement

Je clique ensuite sur référencement google :
referencement google

Puis je clique sur référencement manuel :
referencement manuel

Il faut savoir que les mots-clés présents dans le flash sont présents dans le code source de la page, donc il est aisé d’extraire ces mots-clés apparentés :)

Voici le script php qui permet d’extraire ces mots-clés :

A partir d’un mot-clé donné, ce script va extraire, pour chaque mot-clé de la roue, tous les mots-clés apparentés :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
//Script Auteur : Tiger
//Site Web : http://www.seoblackout.com
//Url script :  http://www.seoblackout.com/2009/06/13/google-wonder-wheel/
//Description script : Ce script php vous permet d'extraire pour un mot-clé donné, les mots-clés connexes à partir de Google Wonder Wheel
//Installation : uploader ce fichier sur votre serveur et appeler le ainsi : http://votre_site_web.com/google-wheel.php?kw=votre mot clé
 
if ((isset($_GET['kw'])) && $_GET['kw']!='')
{
	$q=strip_tags($_GET['kw']);
	echo google_wheel($q);
}
else
{
	echo 'Veuillez saisir un mot-clé !';
}
function google_wheel($q) {
 
$q=urlencode($q);
$search_url="http://www.google.com/search?q=$q&hl=en&tbo=1&tbs=ww:1";
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_USERAGENT, 'Opera/9.63 (Windows NT 5.1; U; fr) Presto/2.1.1');
	curl_setopt($ch, CURLOPT_URL,$search_url);
	curl_setopt($ch, CURLOPT_FAILONERROR, true);
	curl_setopt($ch, CURLOPT_REFERER, $search_url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
	$res= curl_exec($ch);
	curl_close($ch);
	if ($res) {
		if (preg_match('/"r":\[(.*?)\]}\)/',$res,$matches))
		{		
			$response=str_replace('"','',$matches[1]);
 
			$response2=explode(',',$response);
			$response3='';
			foreach ($response2 as $key => $value) 
			{
				$value2=urlencode($value);
				$search_url2="http://www.google.com/search?q=$value2&hl=en&tbo=1&tbs=ww:1";
 
				$ch2 = curl_init();
				curl_setopt($ch2, CURLOPT_USERAGENT, 'Opera/9.63 (Windows NT 5.1; U; fr) Presto/2.1.1');
				curl_setopt($ch2, CURLOPT_URL,$search_url2);
				curl_setopt($ch2, CURLOPT_FAILONERROR, true);
				curl_setopt($ch2, CURLOPT_REFERER, $search_url2);
				curl_setopt($ch2, CURLOPT_RETURNTRANSFER,true);
				$res2= curl_exec($ch2);
				curl_close($ch2);
				if ($res2) 
				{	
					if (preg_match('/"r":\[(.*?)\]}\)/',$res2,$matches2))
					{		
						$response.=','.str_replace('"','',$matches2[1]);
					}
				}
			}
			$response3=array_unique(explode(',',$response));
			asort($response3);
			$res_final='Mot-clé : '.urldecode($q);
			$res_final.='<br />Résultats: <br /><ul>';
			foreach ($response3 as $key => $value) 
			{
			$res_final.='<li>'.utf8_decode($value).'</li>';
			//flush();
			}
			$res_final.='</ul>';
		}
	}
 	return $res_final;
}
?>

Ce script peut être largement améliorié, c’est une base de départ ;)

Voici le résultat de l’extraction à partir du mot-clé référencement :

  • api google
  • comparatif moteur de recherche
  • demande de devis
  • devis création site internet
  • devis gratuit
  • devis referencement
  • exalead moteur de recherche
  • l api
  • la soumission
  • le positionnement
  • les moteurs
  • les moteurs de recherche
  • liens commerciaux
  • loi informatique et libertés
  • moteur de recherche altavista
  • moteurs de recherche
  • moteurs de recherche gratuits
  • mots clefs
  • méthodologie création site internet
  • page rank gratuit
  • positionnement moteur de recherche
  • principaux moteurs de recherche
  • referencement google
  • referencement gratuit
  • referencement gratuit internet
  • referencement gratuit moteur de recherche
  • referencement internet
  • referencement manuel
  • referencement moteurs de recherche
  • referencement naturel
  • referencement positionnement
  • référencement manuel
  • référencement manuel gratuit
  • référencement moteurs de recherche
  • référencement payant
  • soumission moteur de recherche
  • url rewriting
Ces icones representent les sites de bookmarking social dans lesquels vos lecteurs peuvent partager et faire découvrir vos pages.
  • Scoopeo
  • Digg
  • Technorati
  • del.icio.us
  • blogmarks
  • BlogMemes Fr
  • MisterWong Fr
  • Nuouz
  • Pioche
  • StumbleUpon
  • Tapemoi
  • Tutmarks
  • Wikio
  • Netscape
  • Bruxello
  • Blogasty

Commentaires (10)

Catégorie: Google, Scripts PHP

Solutions Jeu referencement

Ecrit par admin le Jeudi 4 juin 2009 à 15:25 - Catégorie Référencement

Le but de ce billet est clairement de se positionner sur solutions jeu référencement ou solution jeu referencement ou trouver la solution à l’épreuve 1 du jeu referencement ou un ou une ou deux ou trois ou quatre ou cinq ou encore épreuve 1, 2, 3, 4, 5, 6 , 7, 8, 9 ,10 , 11, 12, 13, 14, 15, 16 ou épreuves au pluriels, bref vous ne trouverez pas ici la solution ou les solutions pour le jeu pour référenceurs.

Pourquoi je publie ce billet sans intérêt ?

Et bien pour occuper les pages de résultats Google sur ce genre de requêtes, afin de noyer dans la masse ceux qui voudraient publier les solutions du jeu referencement ou les soluces jeu referencement, solution jeu referencement…

Par contre, je veux bien donner des indices, pour ça laissez un commentaire avec votre question au pied de cet article.

Ah j’oubliais si vous cherchez les solutions du jeu, c’est par là :

Ces icones representent les sites de bookmarking social dans lesquels vos lecteurs peuvent partager et faire découvrir vos pages.
  • Scoopeo
  • Digg
  • Technorati
  • del.icio.us
  • blogmarks
  • BlogMemes Fr
  • MisterWong Fr
  • Nuouz
  • Pioche
  • StumbleUpon
  • Tapemoi
  • Tutmarks
  • Wikio
  • Netscape
  • Bruxello
  • Blogasty

Commentaires (11)

Catégorie: Référencement

Jeu pour référenceurs

Ecrit par admin le Vendredi 29 mai 2009 à 13:59 - Catégorie Référencement

Avec mon ami Aurélien d’Oseox.fr, nous avons mis en place un jeu pour référenceurs.
Du novice en référencement à l’expert en référencement, nous vous proposons de vous confronter aux techniques avancées de référencement en participant à des épreuves de rapidités et à difficultés croissantes.

Voici l’adresse du jeu : Jeu référencement.

Bonne chance à tous et que le meilleur gagne !

EDIT : Sylvain a mis en ligne un article sur son blog à propos du jeu dans lequel nous répondons à quelques questions sur le jeu :

On s’amuse comme des fous chez les référenceurs

Ces icones representent les sites de bookmarking social dans lesquels vos lecteurs peuvent partager et faire découvrir vos pages.
  • Scoopeo
  • Digg
  • Technorati
  • del.icio.us
  • blogmarks
  • BlogMemes Fr
  • MisterWong Fr
  • Nuouz
  • Pioche
  • StumbleUpon
  • Tapemoi
  • Tutmarks
  • Wikio
  • Netscape
  • Bruxello
  • Blogasty

Commentaires (21)

Catégorie: Référencement

Protégé : Référencement Google images : hotlinking images

Ecrit par admin le Jeudi 16 avril 2009 à 14:03 - Catégorie Google, Référencement

Cet article est protégé par mot de passe. Pour le lire, veuillez saisir votre mot de passe ci-dessous :


Ces icones representent les sites de bookmarking social dans lesquels vos lecteurs peuvent partager et faire découvrir vos pages.
  • Scoopeo
  • Digg
  • Technorati
  • del.icio.us
  • blogmarks
  • BlogMemes Fr
  • MisterWong Fr
  • Nuouz
  • Pioche
  • StumbleUpon
  • Tapemoi
  • Tutmarks
  • Wikio
  • Netscape
  • Bruxello
  • Blogasty

Saisissez votre mot de passe pour accéder aux commentaires

Catégorie: Google, Référencement

Google api détection de langue : utilisation antispam

Ecrit par admin le Vendredi 6 février 2009 à 14:43 - Catégorie Outils référencement

Vous en avez marre de devoir faire la chasse aux spams sur les commentaires de vos blogs, sur les topics de vos forums, sites de social bookmark, digg-like, annuaires, CMS… Ca tombe bien moi aussi :)

Voici donc une astuce simple et efficace, pour lutter contre le spam et la propagation de messages porno, ou de pubs pour les pillules bleues sur vos sites web.

L’astuce consiste à utiliser l’api Google qui permet de connaitre la langue dans laquelle un texte donné a été écrit. Pour en savoir plus sur cette api, visitez cette page : http://code.google.com/apis/ajaxlanguage/

Le but est donc d’utiliser cet api Google pour limiter le spam des commentaires sur vos blogs, forums,…
En effet, ayant un blog français écrit en langue française, je me fait spammer par des russes, des chinois, des anglophones… qui utilisent des logiciels de soumission automatique comme XRumer et autres scripts de soumission automatiques
Pour m’en protéger, j’ai pensé à utiliser ce contrôle sur la langue du commentaire avant insertion du commentaire en bdd.

Résultat, j’ai à présent zéro spam :) Enfin zéro spam de provenance étrangère, j’ai toujours quelques commentaires français limite spam, du genre “merci pour cet article” avec une ancre spammy sur le nom :) et autres subtilités…

Code source du script php antispam :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
//ajout controle de la langue :
$comment_content="Hello Girls is this a SEO Black Hat blog or a white hat blog ?";
$confiance='0.20';
$langue='fr';
$langue2='ca';
 
 
$count_content=strlen($comment_content);
if ($count_content<150)
{
$text=$comment_content;
}
else
{
$newart = substr($comment_content, 0, 150);
$pos = strrpos($newart, " ");
$text = substr($newart, 0, $pos);
}
 
function Google_Language_Detection ($text,$confiance,$langue,$langue2) 
{
   $url = 'http://www.google.com/uds/GlangDetect?v=1.0&q='.urlencode($text);
   if (function_exists('curl_init')) 
	{
		$userAgent='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)';
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL,$url);
		curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$result=curl_exec ($ch);
		curl_close ($ch);
	} 
	else 
	{
		$result= file_get_contents($url);
	}
 
	if ( !function_exists('json_decode') )
	{
		preg_match('/language":"(.*?)"/si', $result, $matches);
		$lang = $matches[1];
		preg_match('/confidence":(.*?)}/si', $result, $matches);
		$confidence = $matches[1];
		preg_match('/responseStatus":(.*?)}/si', $result, $matches);
		$responseStatus = $matches[1];
 
		if ($responseStatus== 200) 
		{
			if (($confidence > $confiance) && (($lang==$langue) || ($lang==$langue2))) 
			{
				//echo $lang.' : '.$confidence;
			} 
			else 
			{
				//echo $lang.' : '.$confidence.'<br>';
				echo 'Tentative de spam';
				exit;
			}
		}
	}
	else 
	{
		$json = json_decode($result, true);
		if ($json[responseStatus] == 200) 
		{
			$lang=$json[responseData][language];
			$confidence=$json[responseData][confidence];
			if (($confidence > $confiance) && (($lang==$langue) || ($lang==$langue2))) 
			{
				//echo $lang.' : '.$confidence;
			} 
			else 
			{
				//echo $lang.' : '.$confidence.'<br>';
				echo 'Tentative de spam';
				exit;
			}
		}
	}
}
Google_Language_Detection ($text,$confiance,$langue,$langue2);
//fin ajout controle de la langue
?>

Vous pouvez modifier la langue si votre site n’est pas en français ainsi que la variable $confiance qui permet de filtrer aussi les commentaires courts dans la bonne langue.
Par exemple si le texte saisi = “merci”, Google indique une confiance égale à 0.07835744 pour le mot merci, comme je défini à 0.20 minimum la variable $confidence, le texte merci passera en spam. Ce qui permet de limiter aussi les spammeurs français ;)
A vous de modifier cette variable en fonction de vos besoins.

Démo du script

Pour tester le script, il suffit de poster un commentaire écrit dans une autre langue que le français au pied de cet article.

Ces icones representent les sites de bookmarking social dans lesquels vos lecteurs peuvent partager et faire découvrir vos pages.
  • Scoopeo
  • Digg
  • Technorati
  • del.icio.us
  • blogmarks
  • BlogMemes Fr
  • MisterWong Fr
  • Nuouz
  • Pioche
  • StumbleUpon
  • Tapemoi
  • Tutmarks
  • Wikio
  • Netscape
  • Bruxello
  • Blogasty

Commentaires (23)

Catégorie: Outils référencement

Protégé : Mybloglog visibilité

Ecrit par admin le Dimanche 30 novembre 2008 à 15:06 - Catégorie Outils de spam

Cet article est protégé par mot de passe. Pour le lire, veuillez saisir votre mot de passe ci-dessous :


Ces icones representent les sites de bookmarking social dans lesquels vos lecteurs peuvent partager et faire découvrir vos pages.
  • Scoopeo
  • Digg
  • Technorati
  • del.icio.us
  • blogmarks
  • BlogMemes Fr
  • MisterWong Fr
  • Nuouz
  • Pioche
  • StumbleUpon
  • Tapemoi
  • Tutmarks
  • Wikio
  • Netscape
  • Bruxello
  • Blogasty

Saisissez votre mot de passe pour accéder aux commentaires

Catégorie: Outils de spam

Cadeaux de Noël pour les enfants, visitez http://www.monbeausapin.org/

Ecrit par admin le Dimanche 23 novembre 2008 à 14:35 - Catégorie SEO BlackOut Life

C’est bientôt Noël, et j’ai décidé de participer à la promotion de ce site : http://www.monbeausapin.org/

Le principe est simple, vous visitez ce site qui propose des bandes dessinées en ligne, pour chaque visite enregistrée, MonBeauSapin (grâce à son partenaire Orange) versera à la Croix-Rouge Française une somme correspondant au nombre de visiteurs total. Ce don sera offert à l’opération “Arbres de Noël” de la Croix Rouge, qui a pour but d’offrir des cadeaux aux enfants défavorisés.

Mon Beau Sapin, offrez des jouets aux enfants pour Noel

Conclusion, visitez régulièrement http://www.monbeausapin.org/ jusqu’au 24 décembre ! Et bien sûr rien ne vous empêche d’écrire un article sur le sujet sur votre blog ou site pour faire la promotion de ce site :)

Edition : L’opération est terminé, objectif atteint !
Une autre bonne idée de cadeaux pour Noël proposé par Tom en commentaire au pied de l’article, faire un don à la croix-rouge.

Ces icones representent les sites de bookmarking social dans lesquels vos lecteurs peuvent partager et faire découvrir vos pages.
  • Scoopeo
  • Digg
  • Technorati
  • del.icio.us
  • blogmarks
  • BlogMemes Fr
  • MisterWong Fr
  • Nuouz
  • Pioche
  • StumbleUpon
  • Tapemoi
  • Tutmarks
  • Wikio
  • Netscape
  • Bruxello
  • Blogasty

Commentaires (8)

Catégorie: SEO BlackOut Life

Le blog du président US Barack Obama en dofollow

Ecrit par admin le Mercredi 12 novembre 2008 à 11:37 - Catégorie Backlinks

Hier, j’ai suis allé pour la première fois sur le site de Barack Obama, en me disant, voilà peut-être une occasion d’avoir des visiteurs supplémentaires si je trouve le moyen de poster un lien sur le site de Barack, le nouveau président des Etats-Unis.

Barack Obama président

Le nouveau président des Etats-Unis, Barack Obama

Effectivement, il est possible de commenter le blog de Barack Obama et de laisser un lien dans le corps du texte d’un commentaire, les commentaires sont modérés avant publication, mais les liens sont en dofollow. Il est donc intéressant de poster sur le blog de Barack Obama, si vous avez des sites en anglais, à la fois d’un point de vu référencement mais aussi trafic.

A noter également qu’il est possible de créer son blog en sous-répertoire du site d’Obama.

P.S : bien sûr, le but avoué de cet article est de se positionner sur Barack Obama dans les SERPs pour voir… :)

P.S.1 : Marrant de voir que Google ne propose pas de correction lorsque l’on saisi Barak Obama au lieu de Barack Obama.
P.S.2 : D’autres photos de Barack Obama.

Ces icones representent les sites de bookmarking social dans lesquels vos lecteurs peuvent partager et faire découvrir vos pages.
  • Scoopeo
  • Digg
  • Technorati
  • del.icio.us
  • blogmarks
  • BlogMemes Fr
  • MisterWong Fr
  • Nuouz
  • Pioche
  • StumbleUpon
  • Tapemoi
  • Tutmarks
  • Wikio
  • Netscape
  • Bruxello
  • Blogasty

Commentaires (14)

Catégorie: Backlinks

Limiter le duplicate content dans les annuaires Freeglobes

Ecrit par BlackMelvyn le Jeudi 6 novembre 2008 à 0:21 - Catégorie Scripts PHP

Le duplicate content est l’une des raisons principales qui a mené à la chute vertigineuse de nombreux annuaires dans l’index de notre ami Google.

Peu de visiteurs fréquentent les annuaires, et si certains pensent que la fin des annuaires est arrivée, nous sommes également plusieurs à penser le contraire… Seuls les annuaires de qualité, différents des autres, peuvent apporter un peu de trafic, mais généralement, les répertoires ne servent qu’à obtenir des backlinks fondamentaux au positionnement dans les SERPs.
C’est pour cette raison qu’il est très important de soigner ses annuaires si l’on ne veut pas finir dans les tréfonds de l’index des moteurs.

Parmi les nombreux scripts d’annuaires gratuit et open source, je me suis intéressé à Freeglobes. En effet, son code est propre, clair et ouvert, un moteur de template Smarty permet de personnaliser facilement le design et une multitude de thèmes et de plugins (basés sur le moteur de Dotclear) sont disponibles. Bref, une des stars des scripts d’annuaire.

Revenons à nos moutons (noirs). L’une des meilleures façons de limiter le duplicate content est de le détecter automatiquement. Tiger, l’admin du blog, avait déjà publié cet article sur comment éviter le duplicate content dans les annuaires, et pour compléter cet excellent billet, je vous propose une adaptation de cette fonction en vue d’implémenter cette nouvelle fonctionnalité dans les scripts Freeglobes.

Pour cela il vous faut : un script Freeglobes et un éditeur de texte. Ensuite, suivez les instructions citées en commentaire dans le script.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
######  Fichier de langue
# Ajout de la ligne d'avertissement dans /language/french/main.php
#  Après la ligne 35, à adapter en fonction de "langue choisie"
/*  Added by BlackMelvyn  */
$lang['warn_dupe'] = 'La description de votre site est déjà utilisée un trop grand nombre de fois. Merci de la modifier';
 
######  Fichier des fonctions
# Ajout de la fonction dans /include/functions/basic.php
#  A la fin du fichier
/*
*  Checks if there are other descriptions like the one provided
*  @author Tiger (http://www.seoblackout.com)
*  @author adapted by BlackMelvyn (http://www.theblackmelvyn.com)
*  @param  string $description description provided by the visitor
*  @return bool TRUE if description exists FALSE if description is clean
*/
function checkDupe($description){
    $description = str_replace('"','',$description);
    $desc_cut=wordwrap(stripslashes($desc),100,"<br />",1);
    $cut = explode('<br />', $desc_cut);
    $cut = $cut[0] ;
 
    $url = 'http://www.google.fr/search?hl=fr&q="'. urlencode($cut).'"&filter=0';
    if (function_exists('curl_init')) {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL,$url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
            $data=curl_exec ($ch);
            curl_close ($ch);
    } 
    else {
        $data= file_get_contents($url);
    }
    $page = $data ;
    $result = explode('environ ', $page);
    $result1 = $result[1] ;
    $result2 = explode('pour', $result1);
    $result3 = $result2[0] ;
    $result3 = trim(strip_tags(str_replace('&nbsp;', '', $result3)));
 
//  If more than 5 results found, stop the process
  if ($result3 > 5){
    return true;
  }
  else {
    return false;
  }
}
 
######  Implémentation de la fonction dans le process
#  Utilisation de la fonction dans /include/functions/basic.php
# Après la ligne 79, entre if et else
/*  Added by BlackMelvyn  */
elseif(checkDupe($description)){
  $message = $lang['warn_dupe'];
  $link_url = 'javascript:history.go(-1)';
  $link_name = $lang['return'];
}
?>

Vous voici maintenant équipé(e)s pour empêcher le duplicate dans vos annuaires Freeglobes !

Cette mod est actuellement active sur cet annuaire de sites sur la mode, fraîchement lancé, et visiblement, elle fonctionne très bien… :)

Le but premier de cette mod est de lancer une alerte en cas de duplicate content. A vous ensuite de choisir comment l’exploiter…
En effet, vous pouvez modifier ce script en fournissant une version “markovée” des descriptions qui ne passent pas le test par exemple. De là, vos webmasters sont contents car ils n’ont pas besoin de soumettre une nouvelle fois le formulaire, Google est content car il a des descriptions uniques et vous êtes content(e)s car vous gardez vos fidèles webmasters et restez à une place chaude et confortable de l’index Google. Tout le monde est gagnant !

J’ai plusieurs mods minimes pour les scripts Freeglobes, que je publierai dès que j’aurai un peu plus de temps. Restez à l’écoute ;)

Ces icones representent les sites de bookmarking social dans lesquels vos lecteurs peuvent partager et faire découvrir vos pages.
  • Scoopeo
  • Digg
  • Technorati
  • del.icio.us
  • blogmarks
  • BlogMemes Fr
  • MisterWong Fr
  • Nuouz
  • Pioche
  • StumbleUpon
  • Tapemoi
  • Tutmarks
  • Wikio
  • Netscape
  • Bruxello
  • Blogasty

Commentaires (30)

Catégorie: Scripts PHP

Extraire les urls des résultats de Google

Ecrit par admin le Dimanche 26 octobre 2008 à 15:12 - Catégorie Scraping, Scripts PHP

Comment extraire / parser les urls de résultats de recherche de Google ?

Cela fait plusieurs fois qu’on me demande comment extraire les urls de résultats de recherche de Google dans le but de les utiliser pour diverses raisons : recherche de pages de soumission d’annuaires, recherche des pages de blog avec commentaires, pages de forums, commande link ou site…

Voici donc un script php qui permet d’extraires ces urls de Google.

Différentes options sont proposées, comme le nombre de pages à extraire ou le moteur Google où se fera l’extraction ainsi que la langue du moteur.

Code source du script :

Voici le code du script php à copier/coller dans un fichier et à uploader sur votre serveur ou à utiliser en local :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?php
//Script php : Extraction urls Résultats Google
// Copyrights 2008 Seoblackout.com
//http://www.seoblackout.com	
//Url script : http://www.seoblackout.com/2008/10/26/extraire-resultats-google/
 
@set_time_limit(0);
$useragent='Mozilla/5.0';
$regex='<h3 class=r>';
//extension et langue google
if ((isset($_POST['ext'])) && ($_POST['ext']!='')) 
{
	$ext=strip_tags($_POST['ext']);
	if ($ext=='fr') {
	$lang='fr';
	}
	else if ($ext=='com') {
	$lang='en';
	} 
	else if ($ext=='es') {
	$lang='es';
	}
	else if ($ext=='de') {
	$lang='de';
	}
	else if ($ext=='ca') {
	$lang='en';
	}
	else if ($ext=='ca2') {
	$ext='ca';
	$lang='fr';
	}
	else {
	$ext='fr';
	$lang='fr';
	}
}
else 
{
	// par défaut, on recherche sur google.fr et lang=fr
	$ext='fr';
	$lang='fr';
}
//nombre de page à extraire :
if ((is_numeric($_POST['pages'])) && ($_POST['pages']!='')) 
{
	$c=(strip_tags($_POST['pages'])-1);
}
else 
{
	//10 pages par défaut, on part de 0 donc 10 pages = 9
	$c=9;
}
 
if ((isset($_POST['kw'])) && ($_POST['kw']!='')) 
{
	$kw=trim(strip_tags($_POST['kw']));
	$pagenum = 0;			
	$googlefrurl = "http://www.google.".$ext."/search?hl=".$lang."&q=" . urlencode($kw) . "&start=$pagenum";
	$url_new = '';
 
	while($pagenum <= $c) 
	{
			if (function_exists('curl_init')) 
			{
				$ch = curl_init();
				curl_setopt($ch, CURLOPT_USERAGENT, $GLOBALS['useragent']);
				curl_setopt($ch, CURLOPT_URL,$googlefrurl);
				curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
				$result=curl_exec ($ch);
				curl_close ($ch);
			} 
			else 
			{
				$result= file_get_contents($googlefrurl);
			} 	
		preg_match_all('/'.$regex.'<a href="(.*?)"/si', $result, $matches);
			$i = 0;
			$n = count($matches[1]);
			$pagenum++;
			$pagenum2 = $pagenum.'0';
			$googlefrurl = "http://www.google.".$ext."/search?hl=".$lang."&q=" . urlencode($kw) . "&start=$pagenum2&safe=off&pwst=1&filter=0";
 
			while($i <= $n) 
			{
				$url_new1 = addslashes($matches[1][$i]);
				$url_new .= trim($matches[1][$i])."<br>";
				$i++;
				flush();
			}
	}
	$url_new .= '';				
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Extraction Urls résultats Google</title>
</head>
<body>
<h1>Extraction Urls résultats Google</h1>
<div>
<?php 
if ((isset($_POST['kw'])) && ($_POST['kw']!='')) {
	echo "<h3>Keyword : ",strip_tags($kw),"</h3>";
	echo "<h6>Google Results</h6>";
	echo str_replace('<br><br>','<br>',$url_new); 
}
?>
<form method="POST" action="<?php echo strip_tags($_SERVER['REQUEST_URI']) ;?>">
<p>Saisir vos mots-clés :</p>
<input name="kw" type="text" size="100" value="<?php if (isset($_POST['kw'])) {echo strip_tags($kw);} ?>">
<p>Nombre de pages à extraire (optionel => 10 pages par défaut):</p>
<input name="pages" type="text" size="3" maxlength="3" value="<?php if (isset($_POST['pages'])) {echo strip_tags($_POST['pages']);} else {echo '10';} ?>">
<p>Moteur :</p>
<select name="ext">
<option value="fr"<?php if (($_POST['ext'])=='fr') {echo ' selected';} ?>>Google.fr (hl=fr)</option>
<option value="com"<?php if (($_POST['ext'])=='com') {echo ' selected';} ?>>Google.com (hl=en)</option>
<option value="es"<?php if (($_POST['ext'])=='es') {echo ' selected';} ?>>Google.es (hl=es)</option>
<option value="de"<?php if (($_POST['ext'])=='de') {echo ' selected';} ?>>Google.de (hl=de)</option>
<option value="ca"<?php if (($_POST['ext'])=='ca') {echo ' selected';} ?>>Google.ca (hl=en)</option>
<option value="ca2"<?php if (($_POST['ext'])=='ca2') {echo ' selected';} ?>>Google.ca (hl=fr)</option>
</select>
<p><input type="submit" value="Go" name="go">
<input type='button' value='Annuler' onclick='location.href="<?php echo strip_tags($_SERVER['REQUEST_URI']) ;?>"'></p>
</form>
<br />
<small>Script proposé par SEO BlackOut : <a href="http://www.seoblackout.com/">référencement</a></small>
</div>
</body>
</html>

Démo :

Dans la démo, le nombre de résultats extraits est limité à 3 pages uniquement !

http://www.seoblackout.com/scripts/extraire-urls-google.php

Ces icones representent les sites de bookmarking social dans lesquels vos lecteurs peuvent partager et faire découvrir vos pages.
  • Scoopeo
  • Digg
  • Technorati
  • del.icio.us
  • blogmarks
  • BlogMemes Fr
  • MisterWong Fr
  • Nuouz
  • Pioche
  • StumbleUpon
  • Tapemoi
  • Tutmarks
  • Wikio
  • Netscape
  • Bruxello
  • Blogasty

Commentaires (14)

Catégorie: Scraping, Scripts PHP



SEO BLACKOUT

Site web dédié aux techniques de référencement et de positionnement de sites web sur les moteurs de recherche Google, Yahoo, MSN.
Certaines parties du site sont en accès restreint, ces espaces sont réservés à la SEO Black Hat Team.


Don't Be Evil !