Seohackers netlinking

Google Suggest – Script php (Nouvelle version)

Ecrit par admin le Mercredi 27 janvier 2010 à 14:25 - Catégorie Google,Scripts PHP

Il y a quelques jours, nous vous présentions un outil nommé Google Suggest php script permettant d’extraire les suggestions proposées par Google à partir d’un mot-clé, les résultats ainsi obtenus étaient à nouveau extraits et ainsi de suite selon le niveau de profondeur défini par l’utilisateur du script (jusqu’à 5 niveaux).

Et bien, aujourd’hui nous vous proposons en plus les options suivantes :

  • Gestion de listes de mots
  • Intégration de mots mixés
  • Test de mots + lettres de l’alphabet
  • Récupération du nombre de résultats

Voici le script php google suggest nouvelle version :

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
<?php
//Script Google Suggest by http://www.seoblackout.com
// Auteurs du script : Beunwa http://divioseo.fr/ & Tiger http://www.seoblackout.com
// Contributeurs émérites : Seg http://www.wagablog.com/ & Meuhsli http://www.thugeek.com/
// Url article du script pour bugs, commentaires... : http://www.seoblackout.com/2010/01/27/google-suggest/
?>
<form  action="" method="post">
	<table><tr><td>
		Keyword : <textarea name="kw" rows="10"><?=strip_tags($_POST['kw'])?></textarea>
	</td><td>
		et <textarea name="mix2" rows="10"><?=strip_tags($_POST['mix2'])?></textarea>
	</td><td>
		<br />
		Langue : 
		<select name="lang">
			<option value="fr">FR</option>
			<option value="en">EN</option>
		</select>
		<br />
		Profondeur : 
		<select name="depth">
			<option value="1">1</option>
			<option value="2">2</option>
			<option value="3">3</option>
			<option value="4">4</option>
			<option value="5">5</option>
		</select>  
		<br />
		Alphabet :<input type="checkbox" name="alph" />
	</td></tr></table>
	<br />
	<input type="submit" value="Go" />
</form>
<?php
if(isset($_POST['kw'])){
	$lang = strip_tags($_POST["lang"]);
	if($lang == '') $lang = "fr"; 
	$depth = strip_tags($_POST["depth"]);
	if($depth == '') $depth = "1";
 
	$kwsd = array();
	$kwsd=explode("\n",trim(strip_tags($_POST["kw"])));
	foreach ($kwsd as $lst) {
		if($lst != "\n"){
			//mots cles simple
			ggSuggest($lst, $lang, $depth);
 
			//mots cles avec compléments
			$kws2 = array();
			$kws2=explode("\n",strip_tags($_POST["mix2"]));
			foreach ($kws2 as $mix2) {
				ggSuggest($lst.$mix2, $lang, $depth);
			}
 
			//alphabet
			if(strip_tags($_POST["alph"]) == "on"){
				$alpha = "a";
				while($alpha != "z"){
					ggSuggest($lst.' '.$alpha, $lang, $depth);
					$alpha = ++$alpha;
				}
			}
		}
	}
 
}
 
function ggSuggest($kw, $lang, $depth = 1, $inc = 1){	
	global $tabKw;
 
	$tabKw[] = $kw;	
    $url = 'http://www.google.com/complete/search?hl='.$lang.'&js=true&qu='. urlencode($kw);
	if (function_exists('curl_init')) {
	$header = array(
        "Accept: text/xml,application/xml,application/xhtml+xml,
		text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
        "Accept-Language: fr-fr,fr;q=0.7,en-us;q=0.5,en;q=0.3",
        "Accept-Charset: utf-8;q=0.7,*;q=0.7",
        "Keep-Alive: 300");
		$ch = curl_init();
	    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
	    curl_setopt($ch, CURLOPT_HEADER, false);
	    curl_setopt($ch, CURLOPT_VERBOSE, true);	
	    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
	    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
	    curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com/');
	    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)' );
	    curl_setopt($ch, CURLOPT_HTTPHEADER, $header );
	 	curl_setopt($ch, CURLOPT_URL, $url);
		$result=curl_exec ($ch);
		curl_close ($ch);
	} else {
		$result= file_get_contents($url);
	}
	preg_match_all('/\["(.*?)",/si', $result, $kwgoogle, PREG_SET_ORDER);//mot
	preg_match_all('/\,"(.*?)résultats",/si', $result, $nbresult, PREG_SET_ORDER);//nb resultats
 
	if ($kwgoogle=='' || $inc > $depth) {
		return $tabKw;
	}else {
		$ii = 0;
		foreach($kwgoogle as $v){	
			$tk = utf8_decode(strip_tags($v[1]));
			if(!in_array($tk, $tabKw)){ 
				$tk = str_replace ('\r',"", $tk);
				$kwr = utf8_decode($nbresult[$ii][1]);
				if($kwr == "") $kwr = 0;
				echo $kwr.' ; '.$tk.'<br />';
				$ii++;
				flush();
				ggSuggest($tk, $lang, $depth, $inc+1); 
			}
		}
	}
	return $tabKw;
}
?>

Un grand merci à  Seg (Wagablog – Google Analytics) et Meuhsli (Blog Geek) de l’agence référencement Résoneo, qui nous proposent ici une contribution majeure. 

Merci encore une fois à Beunwa (Référencement Dijon), pour avoir contribué au développement du script Google Suggest. 

Merci à eux 3 pour avoir accepté de partager publiquement et gratuitement avec vous ces améliorations !

Le web est un lieu de partage, keep this spirit !

A lire à propos de Google Suggest chez copains :

Articles liés :

Commentaires (37)

Catégorie: Google,Scripts PHP


37 Commentaires

Commentaire par casiseb

Mercredi, 27 janvier , 2010 à 15:12

ah merci je sauvegarde sa dans ma base de script ;)

Commentaire par Seg

Mercredi, 27 janvier , 2010 à 15:24

Merci pour la citation Paul !

Je suggère aux utilisateurs de tester les expressions commençant par Combien, Qui, Quel, etc. avec les lettres de A à Z derrière. Trop bon ! :)

Commentaire par Patrenet

Mercredi, 27 janvier , 2010 à 15:34

Excellent, tout simplement excellent !
Bravo ! ;)

Commentaire par Patrenet

Mercredi, 27 janvier , 2010 à 15:58

@Seg : Je retiendrais celui là : « 9 020 000 ; combien a t on de cheveux sur la tete » :p

Commentaire par Matthieu

Mercredi, 27 janvier , 2010 à 16:08

Super amélioration !
Quelle est la prochaine amélioration du script? Ca va trouver la position de notre site sur les requêtes suggérées ? ;)

Commentaire par La Fabrik

Mercredi, 27 janvier , 2010 à 16:54

Humm les bonnes listes !! Merci encore à vous 4 et bravo.

Commentaire par alex de @referencement

Mercredi, 27 janvier , 2010 à 17:00

Pour test, ton script est à jour à cette URL http://referencement-blog.net/google-suggest.php :)

Bon boulot à tous!

Commentaire par ^fabrice^^

Mercredi, 27 janvier , 2010 à 17:24

pour éviter les notices PHP 5Notice: Undefined index: alph in (…) on line 56°

remplacer : 
<?=strip_tags($_POST['kw'])?>
par <?php echo strip_tags($_POST['mix2'])?>
et idéalement par <?php if (isset($_POST['kw'])){ echo strip_tags($_POST['kw']); }?>


et aussi :
//alphabet
if(strip_tags($_POST["alph"]) == "on"){
			
par 
//alphabet
if(isset($_POST["alph"]) AND strip_tags($_POST["alph"]) == "on"){

Commentaire par admin

Mercredi, 27 janvier , 2010 à 17:30

Merci à tous :)

@fabrice : merci je mettrai à jour le script dans la soirée ;)

Commentaire par casiseb

Mercredi, 27 janvier , 2010 à 20:08

Oh je viens de tester la bête c’est excellent ! merci pour ce travail nikel !

Commentaire par François

Mercredi, 27 janvier , 2010 à 23:42

Hey ! mais c’est du super taf ça, merci.

Commentaire par Seg

Jeudi, 28 janvier , 2010 à 11:07

@Patrenet : ouaip, il y a des perles…
« combien faut il de nains pour creuser un tunnel de 28 m en 3 jours dans du granit »

Commentaire par MarieC

Jeudi, 28 janvier , 2010 à 12:15

Bonjour,
C’est moi où y’a un petit souci d’encodage. Voici un extrait d’une recherche sur le terme référencement (tous les accents et points sont remplacés par des caractères avec des ?)
15�600�000 ; r�f�rencement
Une idée de ce qu’il faut modifier ?

Commentaire par Serial Blogueur

Jeudi, 28 janvier , 2010 à 14:55

Ouh là là, en 5 minutes, couplé avec un checker de NDD Dispo, je deviens le Roi de la recherche de NDD classes :)

Commentaire par Olivier

Mardi, 2 février , 2010 à 14:04

Paul,
En lieu et place des expressions régulières, tu peux directement utiliser la fonction json_decode() ;-) Cette fonction est d’ailleurs très utile pour pas mal de choses de chez Google…

Commentaire par gino

Jeudi, 11 février , 2010 à 12:00

Bonjour à L’equipe

Je viens me pourvoir en ridicule. J’ai telechargé les 2 scripts google suggest via mon ftp à la racine de mon site. Deja la je pense que c’est pas bon.
Sinon comment je dois faire ensuite pour pouvoir utiliser ces scripts (les appeler)qui paraissent très prometteur.
Merci à vous pour le travail et le service accomplie

Commentaire par admin

Jeudi, 11 février , 2010 à 12:54

Tu prends le script proposé ci-dessus, tu le mets dans un fichier que tu nommes google-suggest.php par exemple.
Tu le up sur ton ftp soit à la racine soit ailleurs et ensuite tu appelles le script comme ça (si à la racine) -http://ton_site_web.com/google-suggest.php

Commentaire par admin

Jeudi, 11 février , 2010 à 12:57

@Olivier : oui je sais mais là le script est compatible php4 ;)

Commentaire par gino

Jeudi, 11 février , 2010 à 13:06

Ok merci pour ta réponse rapide
Voila un digg de gagné

Commentaire par noobseo

Mardi, 16 mars , 2010 à 4:35

hello

une vrai pepite ce site !! chapeau donc

une question de noob sous quelle forme obtient on les resultats ?
et comment l’afficher ?

merci

Commentaire par RomDu

Lundi, 29 mars , 2010 à 15:22

Bonjour,

Merci pour ce script.

j’ai une suggestion pour avoir un meilleur rendu des différents niveaux de profondeurs :

En ajoutant une balise de liste (ul) à la ligne 103 (fermeture de liste ligne 116) et une puce autour de chaque résultat, on obtient une vue arborescente des résultats.

Vous pouvez tester le rendu sur la requête « test » ici :

http://duhomez.ironie.org/seo-widgets/suggest.php

Merci pour ce script.

Commentaire par iglow

Mercredi, 21 avril , 2010 à 17:37

jai un erreur – Parse error: syntax error, unexpected T_ECHO in /home/admin/domains/*/public_html/g.suggest.php on line 8

jai php5

hm?

Commentaire par Emma

Lundi, 17 mai , 2010 à 18:12

Bonjour,

Je dois avoir un souci, je n’arrive pas non plus à faire fonctionner ce script. Les pré-requis sont bien php5 avec configuration LAMP, c’est cela?

Commentaire par Jok

Lundi, 19 juillet , 2010 à 17:21

Bonjour

Je n’arrive plus à avoir le nombre de résultat associé au requêtes proposé par Google suggest.

J’ai fait quelques testes sur différent sites, les suggestions de mots/expressions clés fonctionnent toujours, mais pas le nombre de résultat.
Et je n’ai trouvé qu’un seul site, (Allemand je crois), utilisant ce script qui retourne bien le nombre de requête des Internaute prposé par Google Suggest. Les autres retournent : « expressions requêtes (0 resultats) ».

Je m’en serre de temps en temps à titre perso. Je ne l’ai jamais mit en prod sur un de mes sites. Je comptai le faire pour mon annuaire principal, afin d’inciter les personnes qui soumettent des sites à mieux renseigner les infos des sites qu’ils proposent…

Quelqu’un serait d’où vient le problème ???
Est ce que ce ne serait pas une « histoire » d’api de GG ??? (que je n’utilise pas, car j’suis une bille en programmation…)

Merci d’avance, bonne fin de journée

PS : sorry pour mon orthographe ;)

Commentaire par Philip

Lundi, 19 juillet , 2010 à 17:58

Interessant comme script :)

J’ai 3 questions :
1 – Chez moi, ça ne remonte pas le nombre de résultats GG. Ni sur le script original, ni sur l’adaptation de Romdu.
2 – Quel est l’intéret par rapport au keyword external tool (ou son équivalent adwords) ? Est ce que ça remonte d’autres résultats ?
3 – à qui servent les 2 champs de formulaire. Le premier, ok, j’ai saisi (pas si c.. hein !!!), mais le 2ème ?

Commentaire par Philip

Mardi, 20 juillet , 2010 à 13:30

Pour le nombre de résultats, ok, j’ai trouvé : C’est GG qui le remonte pas, tout simplement.

Et pour le 2eme champ, il semble que ça soit pour générer des déclinaisons, non ?

Commentaire par Greg

Mardi, 14 septembre , 2010 à 9:19

Salut,
J’ai fait le meme script en ruby, vous pouvez voir le code source sur mon code github ici: http://github.com/gregorym/Google-Suggest
Puis une démo ici: http://gsuggest.balbaodev.com

Commentaire par Ben

Vendredi, 17 septembre , 2010 à 3:25

Si on utilise ce script sur un site, on ne sera pas pénalisé par google d’avoir utiliser un script qui utilise ses services? car avant de l’utiliser je veux bien m’en informer.

D’après google:

5. Utilisation des Services
.
.
5.3 Vous vous engagez à ne pas accéder (ou tenter d’accéder) aux Services par un quelconque moyen autre que l’interface fournie par Google, sauf autorisation expresse de Google faisant l’objet d’un contrat distinct. En particulier, vous vous engagez à ne pas accéder (ou tenter d’accéder) aux Services par un moyen automatisé quel qu’il soit, tel que l’utilisation de scripts ou de systèmes d’exploration du Web, et à vous conformer aux instructions mentionnées dans tout fichier robots.txt utilisé dans les Services.

Commentaire par Erhan

Samedi, 13 novembre , 2010 à 18:29

Bonjour,
Quelqu’un pourra m’expliquer comment l’utiliser ce script. J’appel le fichier comme expliquer j’ai deux champs de texte je rentre des donnés mais rien ce passe. dite moi pas que je suis complémentement à l’ouest.
Merci

Commentaire par Mehdi

Mardi, 26 avril , 2011 à 1:52

@RomDu pouvez nous envoyé le script puisque ça marche chez vous!!!

@admin je cherche un script php pour réaliser un audit technique de site comme cet outil http://www.atypirank.fr/audit.php
Merci par avance

Commentaire par plop

Dimanche, 4 décembre , 2011 à 7:01

Erhan et Mehdi:
Je crois que le script n’est plus fonctionnel c’est pour ça que l’admin ne veut pas nous répondre …
Dommage et merci quand même

Commentaire par Beunwa

Mardi, 6 décembre , 2011 à 15:54

Il semble que google ai mis a jour ses urls, Il faut remplacer cette ligne :

$url = ‘http://www.google.com/complete/search?hl=’.$lang.’&js=true&qu=’. urlencode($kw);

par celle la :

$url = ‘http://www.google.fr/s?hl=’.$lang.’&cp=3&gs_id=s&xhr=t&q=’.urlencode($kw).’&pf=p’;

Et c’est reparti.

Commentaire par Mickey

Vendredi, 9 décembre , 2011 à 19:06

J’ai l’impression que le script ne fonctionne plus depuis quelques semaines. Il fonctionnait très bien sur un serveur dédié. Quand j’ai constaté qu’il ne fonctionnait plus la semaine dernière, je l’ai installé ailleurs, mais ça ne donne toujours rien.
Google a peut-être changé de protocole ?

Commentaire par Henri

Vendredi, 16 décembre , 2011 à 10:04

Merci Beunwa, ca marche de nouveau avec ce script ;

Il suffit de remplacer l’url dans le script ….

Bonne journée

Commentaire par plop

Vendredi, 16 décembre , 2011 à 13:53

Cela ne fonctionne toujours pas : Parse error: syntax error, unexpected ‘:’ in /var/www/vhosts/******.com/httpdocs/gg-sugest.php on line 72
Merci mais votre ligne ne fais toujours pas fonctionner le script.

Commentaire par Julie C.

Mardi, 17 janvier , 2012 à 2:52

Bonjour et merci pour ce script super utile :)
je confirme qu’avec la correction de Beunwa, le script fonctionne à nouveau.
Plop tu devrais juste vérifier que les apostrophes contenus dans la ligne à coller sont bien des apostrophes « normales » au lieu des typographiques : $url = ‘http au lieu de $url = ‘http
Si tu remplaces les apostrophes de cette ligne après ton copier coller ça devrait marcher…

Par contre il reste tjs un souci je crois, c’est au niveau du nb de résultats, les résultats renvoient l’erreur « undefined offset » car j’ai l’impression que le tableau $nbresult (ligne 99) est vide…

J’ai essayé de bidouiller pour corriger, mais je ne m’y connais pas assez je crois pour y arriver seule :’)
Si vous avez des idées n’hésitez pas ;)

Commentaire par Valentin

Mercredi, 25 avril , 2012 à 16:51

Bonjour,
nous travaillons en Belgique et donc utilisons Google Belgique.

$url = ‘http://www.google.fr/s?hl=’.$lang.’&cp=3&gs_id=s&xhr=t&q=’.urlencode($kw).’&pf=p’;

Si on met .be nous avons nos résultats sans problème.
Par contre, que faut-il faire pour avoir les résultats sur Google Belgique néerlandais ?

merci beaucoup :D

Les commentaires sont fermés pour cet article.



SEO BLACKOUT

Site web dédié aux techniques de référencement et de positionnement de sites web sur Google.

Certaines parties du site sont en accès restreint, ces espaces sont réservés à la SEO Black Hat Team.


Don't Be Evil !