Vous n'êtes pas identifié(e).
Bonjour à tous,
Depuis quelques temps, je me suis mis à "développer" des petits tools sur Node.js et aujourd'hui, je viens vers vous avec une API Google Suggest que j'ai modelé qui va pouvoir en intéresser plus d'un ...
Il s'agit d'une API qui vous donnera sous un format séparé par des virgules les 10 suggestions Google Suggest pour un mot clés donné (ou plus selon les paramètres choisis).
L’intérêt de cette API réside dans sa rapidité et son formatage.
L'utilisation est assez simple, vous mettez le mot clés de votre choix dans l'URL et une page se charge avec les mots.
Deux paramètres peuvent être ajoutés pour la récursivité numérique (&TYPE=num) et alphabétique (&TYPE=abc) ainsi qu'une partie "prédictive" (&TYPE=pre)
Sans plus attendre, voici les URLs :
http://duan.fr:1337/sug?KW=blackhat
http://duan.fr:1337/sug?KW=blackhat&TYPE=abc
http://duan.fr:1337/sug?KW=blackhat&TYPE=num
http://duan.fr:1337/sug?KW=blackhat&TYPE=pre
http://duan.fr:1337/sug?KW=blackhat&TYPE=aab
http://duan.fr:1337/sug?KW=blackhat&TYPE=abc&SRC=yt
Pour une utilisation "industrielle" simple sans connaissances techniques approfondies, vous pouvez vous amuser avec excel ou Google doc :
Fichier source excel
Fichier partagé Gdoc (n'oubliez pas d'en faire une copie pour l'utiliser)
Je viens de tester dans mon excel 1500 mots clés : temps de réponse/traitement : 45 secondes (bon j'ai 12 coeurs sur ma machine !)
Edit : Soyez indulgents si l'app crash, elle est encore en BETA.
Si vous avez le moindre bug, résultat improbable ou suggestions pour des fonctionnalités futures : n'hésitez pas à intervenir dans ce post
PS : Le code n'est pas encore "sortable" et maintenable : j'en suis encore loin ... Mais l'application est d'ores et déjà disponible en Open Source sur Github
PS2 : un code (qui par le plus grand des hasards vient d'un de nos membres -christophebe-) beaucoup plus aboutit (pour le moment) est disponible sur NPM (donc toujours sous node.JS) --> Promis, je vais faire mieux !
Dernière modification par duan78 (2016-02-11 17:13:23)
Arnaud BOYER, eMarketing Manager @ Label Group
🔴 Hors ligne
Fonctionnalités futures :
Récursivité numérique : OK
Récursivité alphabétique : OK
Sortie triée par ordre alphabétique/numérique : OK
Ajout de requêtes "prédictives" (_, &) avant et après les mots clés : OK
Ajout des sources Youtube, Google News et Google Image : OK
Récursivité alphabétique profonde (ab, ac, ad ...) : OK
Rotation de proxys : OK
Sélection de la langue (actuellement fr_FR uniquement) : En cours
Multisources (Bing + Google) : En cours
Avoir toutes les sources et récursivités dans un seul paramètre
Ajout de requêtes de suggestions prédéfinies (informationelles et transactionnelles type "acheter", "comment" etc.)
Format de sortie au choix (Json, CSV, XML)
Récursivité des suggestions (avec plusieurs niveaux)
Traitement par lots (possibilité d'envoyer plusieurs mots clés)
Possibilité de filtrer la sortie (contient uniquement/contient pas)
Bug remontés :
Problème de formatage -> oublie de virgules sur les récursivités : OK
Problème de stabilité : OK
Une virgule est présente à la fin de la sortie : OK
Présence de résultats vides (qui engendrent des doubles virgules) : OK
Mauvaise gestion des erreurs : En cours
Problème d'encodage depuis fichier excel -> excel n'envoie pas de l'utf-8 à l'app : KO
Post dédié au développement et à la contribution GitHub
Dernière modification par duan78 (2016-02-11 18:22:12)
Arnaud BOYER, eMarketing Manager @ Label Group
🔴 Hors ligne
Merci pour le partage en tout cas c'est top !
Ça fait plaisir que ça plaise : il y aura des ajouts dans le futur.
N'hésitez pas à me faire des retours (si l'App n'a pas craché...)
Arnaud BOYER, eMarketing Manager @ Label Group
🔴 Hors ligne
J'ai effectué 2 tests de comparaison avec l'outil webrankinfo.com/outils/google-suggest.php.
Tests réalisés :
un simple mot, les dix mots retournés ne sont pas dans le même ordre.
une chaîne composé de 2 mots, le résultat des 10 premiers termes sont identiques
Par contre sous Excel, je n'ai pas compris comment exploiter les infos
🔴 Hors ligne
J'ai effectué 2 tests de comparaison avec l'outil webrankinfo.com/outils/google-suggest.php.
Tests réalisés :
un simple mot, les dix mots retournés ne sont pas dans le même ordre.
une chaîne composé de 2 mots, le résultat des 10 premiers termes sont identiquesPar contre sous Excel, je n'ai pas compris comment exploiter les infos
Oui, ça doit venir de mon parsing pour la différence de résultats... Merci pour le benchmark, tu n'as plus qu'à comparer le temps d'exécution
Pour l'excel et le gdoc, je mettrai le post à jour demain avec de bons exemples et les fichiers sources
PS : d'ici quelques jours (le temps que j'ai un code propre) : le projet sera open source
Arnaud BOYER, eMarketing Manager @ Label Group
🔴 Hors ligne
Très bon, merci !
-----------------------------------------------------------------------------------------------
Seule limite: l'imagination.
🔴 Hors ligne
Impressionnant la rapidité de nodejs, je ne m'en rendait pas compte sans l'incrémentale ! Ça s'apprend vite Duan ?
Aussi, tu as des mutu qui le gère et faut forcément passer en dédié ?
Dernière modification par Mitsu (2016-01-12 13:39:04)
🔴 Hors ligne
Hello All,
Merci pour ce script, j'ai hate de voir le code source
En attendant, je me suis fait un mini outil pour faire des traitements par lot qui fonctionne sous mac et probablement sous linux, si cela intéresse des gens ici.
Voici le fichier bash: https://www.dropbox.com/s/ztcj2r8w4la6a9g/curly_suggest.sh?dl=0
et ensuite, il suffit de lancer dans la console
kwds.txt étant bien sur la liste des mots clefs a envoyer a l'api
cela va stocker le résultat dans un fichier kwd-suggest.txt dans le dossier courant
Dernière modification par gokam (2016-01-12 15:36:51)
🔴 Hors ligne
Hello @Gokam, merci pour le petit outil, bien sympa. Je vais essayer de tester pour voir.
Je t'invite à te présenter ici avant qu'on puisse échanger ensemble, je suis certain que tu as plein de choses à nous apporter
Work Hard In Silence, Let Success Make The Noise !
--> cedricguerin.fr
🔴 Hors ligne
Hello All,
Merci pour ce script, j'ai hate de voir le code source
En attendant, je me suis fait un mini outil pour faire des traitements par lot qui fonctionne sous mac et probablement sous linux, si cela intéresse des gens ici.
Voici le fichier bash: https://www.dropbox.com/s/g2dmelnmbfozmmm/curl_suggest.sh?dl=0
et ensuite, il suffit de lancer dans la console
xargs -n1 ./curl_suggest.sh < kwds.txtkwds.txt étant bien sur la liste des mots clefs a envoyer a l'api
cela va stocker le résultat dans un fichier kwd-suggest.txt dans le dossier courant
Merci pour ton script François et n'oublie pas de te présenter, tu vas voir : ce forum est une mine d'or !
Impressionnant la rapidité de nodejs, je ne m'en rendait pas compte sans l'incrémentale ! Ça s'apprend vite Duan ?
Aussi, tu as des mutu qui le gère et faut forcément passer en dédié ?
Ça s'apprends très vite avec les bons support (j'ai commencé par la présentation de video2brain puis j'ai saigné youtube et stackoverflow ...)
Pour l’hébergement, c'est la merde : je passe par une vps (j'aurais pu un dédié)... Il n'y aucun mutu qui permettent de faire tourner du node.
Arnaud BOYER, eMarketing Manager @ Label Group
🔴 Hors ligne
Le lien ne marche plus chez moi
Idem, je n'ai pas eu le temps de le charger ... : je le relance sur twitter
Edit : il a corrigé
Dernière modification par duan78 (2016-01-12 15:38:28)
Arnaud BOYER, eMarketing Manager @ Label Group
🔴 Hors ligne
Bon du coups je partage un script PHP qui fonctionne sans problème
<?php
//Search term
$term = $_REQUEST['q'];
//Search Engine array
$searchEngines = array(
"Google" => array("http://suggestqueries.google.com/complete/search?output=firefox&client=firefox&hl=fr-FR&q=", "http://www.google.fr/search?q="),
"Bing" => array("http://api.bing.com/osjson.aspx?Market=fr-FR&query=", "http://www.bing.com/search?q="),
//"Yahoo" => array("http://ff.search.yahoo.com/gossip?output=fxjson&fr=crmas&command=", "http://search.yahoo.com/search?p=")
//"Wikipedia" => array("http://en.wikipedia.org/w/api.php?action=opensearch&search=", "http://en.wikipedia.org/w/index.php?title=Special%3ASearch&search="),
//"Ebay" => array("http://anywhere.ebay.com/services/suggest/?q=", "http://shop.ebay.com/i.html?_nkw="),
//"Amazon" => array("http://completion.amazon.com/search/complete?search-alias=aps&client=amazon-search-ui&mkt=1&q=", "http://www.amazon.com/s/field-keywords=")
);//Combine Search Results
$searchArray = array();
foreach($searchEngines as $engine => $urls){
$url = $urls[0] . rawurlencode($term);
try{
//$json = file_get_contents($url);
$json = get_url_contents($url);
$array = json_decode($json);
$array = $array[1]; //$array[1] contains result list
if(count($array) > 0){
$array = getFormattedArray($array, $engine, $urls[1]);
$searchArray = array_merge($searchArray, $array );
}
} catch (Exception $e){ /* Skip the exception */ }
}//Output JSON
//print_r($searchArray);foreach($searchArray as $d){
foreach($d as $v){
echo '<li><a style="color:#111" href="http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?scl=Twitter&q='.urlencode($v). '">'.$v.'</a>'. "</li>" ;
}
}//Format array to add category (search engine name)
function getFormattedArray($array){
$newArray = array();
foreach($array as $a){
$newArray[] = array('label' => $a);
}
return $newArray;
}//Read URL contents
function get_url_contents($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$ip=rand(0,255).'.'.rand(0,255).'.'.rand(0,255).'.'.rand(0,255);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: $ip", "HTTP_X_FORWARDED_FOR: $ip"));
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/".rand(3,5).".".rand(0,3)." (Windows NT ".rand(3,5).".".rand(0,2)."; rv:2.0.1) Gecko/20100101 Firefox/".rand(3,5).".0.1");
$html = curl_exec($ch);
curl_close($ch);
return $html;
}
?>
🔴 Hors ligne
Bon du coups je partage un script PHP qui fonctionne sans problème
Merci weboost pour ton partage, mais quel intérêt ici ?
Je m'explique : mon script est asynchrone, hyper rapide et taillé sous forme d'api pour pouvoir l'utiliser dans énormément de cas.
De plus, il ne passe pas par suggestqueries qui est limité en appel, mais directement par un autocomplete dérivé afin de pouvoir tenir la charge et de ne pas avoir de limites d'usage.
Enfin, des fonctions de récursivité et d'utilisation directement dans un tableur sont ajoutées.
Sinon effectivement : il y a des services comme ubersuggest qui propose le même rendu que toi...
Ah oui : l'utf-8 ne fonctionne pas (et ne peut fonctionner) sur ton script :'(
Dernière modification par duan78 (2016-01-13 20:57:53)
Arnaud BOYER, eMarketing Manager @ Label Group
🔴 Hors ligne
🔴 Hors ligne
L'intérêt c'est que ce soit 100% partagé même s'il n'a pas toute les fonctions que tu dis.
Maintenant je peux supprimer si çà n'intéresse personne en effet.
Ah, c'est très gentil de ta part, non non : ne supprime pas, le partage de connaissances est toujours bon à prendre.
PS : Comme je l'expliquais, à terme ce projet sera opensource, j'attends juste d'avoir un code que je peux partager ^^
Arnaud BOYER, eMarketing Manager @ Label Group
🔴 Hors ligne
Pour l’hébergement, c'est la merde : je passe par une vps (j'aurais pu un dédié)... Il n'y aucun mutu qui permettent de faire tourner du node.
Simle Hosting de Gandi le propose
https://www.gandi.net/hosting/simple?la … p&db=mysql
Monitorank : suivi de positions (Google Search, Images, Actu, YouTube, Amazon, TripAdvisor, Play Store...)
Testez gratuitement : https://www.monitorank.com
Démo : https://demo.monitorank.com
🔴 Hors ligne
duan78 a écrit :Pour l’hébergement, c'est la merde : je passe par une vps (j'aurais pu un dédié)... Il n'y aucun mutu qui permettent de faire tourner du node.
Simle Hosting de Gandi le propose
https://www.gandi.net/hosting/simple?la … p&db=mysql
Ah oui effectivement !
Par contre, c'est plus cher qu'une vps ovh :'(
Arnaud BOYER, eMarketing Manager @ Label Group
🔴 Hors ligne