💥 TOP Scripts PHP cools *° - Google Docs

Scripts PHP cools - Google Docs




21/08/2020 Scripts PHP 

SEO BlackOut, Référencement Black Hat SEO 

Formation référencement 

Des milliers d’emails avec Gmail pour vos campagnes 

Ecrit par 512banque le mercredi 20 avril 2011 à 13:35 - Catégorie Scripts PHP 

Avant de démarrer cet article, je voudrais vous rappeler que nos amis Tiger et Discodog organisent le premier Bar Camp SEO BH en France à l’occasion de leurs anniversaires respectifs (67 et 75 ans) à Toulouse le Samedi 7 Mai 2011. 

Je vous recommande d’y venir, il y aura quelques discussions et débats qui promettent d’être intéressants (faut-il avoir une 10 aine ou une 100 aine de moneysites ? faut-il se créer une nébuleuse de hosts ou bien parasiter ceux des autres ? comment gagner plus, plus vite, plus fort et mieux ? etc), et il y aura des interventions ayant trait à la sécurité, au webmarketing underground ou encore à l’automatisation par l’humain et ses modalités, ma présentation (512banque) en l’occurence. 

Le problème des emails 

Lorsque vous vous inscrivez sur des (centaines d’) annuaires, forums et autres sites de soumissions, vous devez créer de nombreuses adresses email, à chaque fois unique, pour vos différentes soumissions. Il existe bien sûr 3 solutions simples permettant de démultiplier son nombre d’emails : 

La création d’un catchall sur un domaine, 

L’ajout du signe ‘+’ et d’une chaîne aléatoire sur les adresses gmail (par exemple : 512banque+test1234@gmail.com), 

L’achat de comptes email (yahoo, gmail) avec pop déjà activé, créés par des humains. 

Ces solutions sont satisfaisantes sur certains points mais présentent des défauts : 

Catchall : si vous vous faîtes bannir votre domaine catchall, vous êtes mal. De plus, cela nécessite un peu de configuration (10min-15min) et l’achat d’un domaine 

Ajout du signe ‘+’ : certains formulaires n’acceptent pas la présence d’un ‘+’ dans les emails 

Achat de comptes : cela peut rapidement revenir cher, même si cela reste la voie royale car la plus naturelle. 

Ces problèmes génèrent de la frustration en vous et vous êtes lassés de ne pas pouvoir créer facilement et simplement des centaines d’emails. 

Une solution simple : les points 

Peu connue, la solution des points date de début 2009 environ. Il s’agit de rajouter un ou plusieurs points n’importe où dans la première partie de votre adresse gmail et tous vos emails vous sont forwardés. Par exemple, mon adresse étant : 512banque@gmail.com, je peux me créer des adresses fictives de type : 

5.12banque@gmail.com 

5.1.2.banque@gmail.com 

512banqu.e@gmail.com 

5.1.2.b.a.n.que@gmail.com 

etc 

Dans le cas d’une fausse identité, cette solution permet de passer plus facilement sous le radar : 

jeancocteau@gmail.com devient jean.cocteau, jean.coc.teau, je.ancocteau, jea.n.c.octeau, etc. Dans tous les cas on reste cohérent par rapport au nom/prénom de votre fausse identité. Combien puis-je en faire ? 

Comptez le nombre de lettres dans votre pseudonyme, enlevez 1, et faîtes : 2 puissance le nombre que vous avez trouvé précédemment. 

4 lettres 16 possibilités 

5 lettres 32 possibilités 

6 lettres 64 possibilités 

7 lettres 128 possibilités 

8 lettres 256 possibilités 

9 lettres 512 possibilités 

10 lettres 1024 possibilités 

11 lettres 2048 possibilités 

12 lettres 4096 possibilités 

13 lettres 8192 possibilités

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 1/21 

21/08/2020 Scripts PHP 

14 lettres 16384 possibilités 

15 lettres 32768 possibilités 

16 lettres 65536 possibilités 

17 lettres 131072 possibilités 

18 lettres 262144 possibilités 

19 lettres 524288 possibilités 

20 lettres 1048576 possibilités 

Vite, un script ! 

Voici donc un vieux script que j’ai recyclé vous permettant en l’occurrence de générer toutes vos adresses gmail dérivées possibles et imaginables à partir de votre adresse principale. A titre d’exemple, voici ce que j’ai obtenu à partir de 512banque@gmail.com : 256 possibilités

<?php 

function creuse($tableaux,$ligne,$last){ 

global $j

 $suite=$tableaux

 array_shift($suite)

 $criteres=$tableaux[0]

 foreach($criteres as $crit){ 

 if(count($tableaux)==1) { 

if(sizeof($arr_to_searchin) == 0 || !in_array($ligne.$crit,$toutes_les_possibilites)) { 

echo $ligne.$crit.$last.

'; $j++; } } 

 else creuse( $suite, $ligne.$crit, $last)

 

if(!empty($_POST)) { 

echo

<pre -->'

$final = array()

$string = $_POST['string']

$length = strlen($string); //6 

$nbcomb = $length - 2; //4 

$last = $string[$length-1]

for($i=0;$i&lt;=$nbcomb;$i++) { 

$final[$i] = array($string[$i],$string[$i].'.')

$criteres=$final

$vide=''

creuse($criteres,$vide,$last)

echo '<hr />'.$j.' possibilités avec votre email'

?> 

<form method="POST"> 

Entrez votre adresse email : 

<input name="string" type="text" />@gmail.com 

<button>Envoyer</button> 

</form>

Et vous, comment faîtes-vous pour gérer vos milli{ers|ards} d’emails pour vos campagnes ? 

Vous pourrez retrouver d’autres astuces et plans que je garde secrets (ou presque) en vous abonnant à ma newsletter sur mon blog. Vous verrez, c’est puissant et gratuit, et cela vous procurera une expérience hors du commun. Sinon, si vous voulez une prestation SEO, rendez-vous sur mon site d’agence et contactez-moi si vous voulez ne me contactez pas sauf si extrêmement important. 

Commentaires (9) 

Catégorie: Scripts PHP 

Besoin d'une prestation en référencement ? 

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 2/21 

21/08/2020 Scripts PHP 

Nous contacter 

Créez un rapport personnalisé dans SEO Mioche Tools 

Ecrit par ddpetit le vendredi 29 octobre 2010 à 13:07 - Catégorie Scripts PHP 

Bonjour à tous (et à toutes !). 

Aujourd’hui, je vous propose un article qui s’adresse à tout ceux qui utilisent SEO Mioche Tools, l’outil créé par Nicolas Jean. L’outil en lui même est très utile, mais les rapports qui sont créés ne sont pas forcément très facile à manipuler, surtout lorsque vous commencez à attirer quelques clients, et que vous souhaitez leur envoyer quelques éléments en rapport avec votre travail. Donc, aujourd’hui à travers ce post, je vais vous montrer comment réaliser ce genre de rapport : 

Rapport de positionnement 

Vous ne trouvez pas ça joli ? 

Créez un rapport personnalisé dans SEO Mioche Tools 

Commentaires (10) 

Catégorie: Scripts PHP 

Besoin d'une prestation en référencement ? 

Nous contacter 

Accélérer vos scripts php grâce au multithreading 

Ecrit par Maxime le jeudi 2 septembre 2010 à 13:43 - Catégorie Scripts PHP 

Lecteur de SeoBlackOut, Tiger m’a fait le plaisir de publier ce premier article qui je l’espère vous plaira. Nous avons mis en place dans ma boite qui crée des boutiques en ligne ce script qui permet de multithreader des scripts php. 

Imaginez le cas suivant : Vous souhaitez créer un script qui extrait des données du web. Si vous êtes très BlackHat ce sera pour extraire des digg-likes et des blogs à spammer, ou comme chez Vaisonet ce sera plutôt un script pour faire des relevés de prix sur les boutiques en ligne des concurrents de vos clients … C’est toujours plus sympathique que de le faire à main. 

Dans tous les cas, vous ne voulez par faire quelque chose d’agressif et vous temporisez le tout. Vous avez donc certainement quelque chose comme cela : 

$sites = array('www.siteA.fr', 'www.siteB.fr', 'www.siteC.fr',

foreach($sites as $site

//Votre fonction d'extraction 

 extraction($site)

//La tempo pour passer sous les radars 

sleep(15)

}

Si vous voulez accélérer les choses, le seul moyen est de lancer toutes les extractions en parallèle. C’est facile à faire avec peu de paramètre, mais remplacez 3 sites exemples par 30 à faire tous les jours, c’est vite pénible ! L’idée est donc d’exécuter chaque élément de la boucle foreach dans un thread distinct en même temps que les autres. 

Mauvaise nouvelle, php ne sait pas vraiment faire cela, il faut utiliser autre chose. De nombreux langages le permettent : C, C++, Java, etc … J’ai choisi Python. C’est un langage qui n’est pas compilé, rapide à coder et vous le verrez facile à comprendre. 

Mais je vois déjà une objection pointer à l’horizon : pourquoi ne pas tout coder en Python ? Ce serait clairement la solution la plus pertinente techniquement, je suis parfaitement d’accord. Mais dans les faits, les cordonniers sont les plus mal chaussés : on traine de vieux bouts de code php issu d’une ancienne application web, ou on fait des extractions plus complexe en Perl avec Talend par exemple. 

Et oui, avec le script qui arrive, vous pourrez aussi multithreader des scripts Perl ! 

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 3/21 

21/08/2020 Scripts PHP 

Bref, cet outil vous permettra de recycler vos vieux bouts de code �� 

Préalable sur Python 

Il vous faut Python 3 installé sur votre poste : http://www.python.org/ 

Python 3 contient un éditeur très commode : IDLE que je vous encourage à utiliser. Et deux astuces : attention à l’identation avec Python. Mettez l’extension py pour un script Python classique et pyw pour un script se lançant sans fenêtre. Je le recommande pour ce script. 

Si vous souhaitez diffuser votre script Python et qu’il fonctionne sans avoir à installer Python, tournez vous vers py2exe (Utilisateurs avancés : imaginez ce que l’on peut faire en distribuant les calculs via un exe …). Multithreader PHP grâce à Python 

# Limititation : les threads d'utilisent qu'un coeur d'un processeur multicoeur 

# Ce n'est pas gênant pour l'utilisation escomptée, sachant que la puissance de 

# calcul n'est pas le facteur limitant, celui-ci étant la latence réseau. 

# Auteur : Maxime Varinard - Vaisonet - http://www.vaisonet.com 

# Vous pouvez librement ré-utiliser ce script, mais un petit backlink avec une belle 

# ancre de votre choix contenant e-commerce serait un beau remerciement ;) 

import threading, os 

from tkinter import

th =

def lancement(param)

 global th 

 th = th +

 # la ligne ci-dessous est à adapter pour lancer les bons programmes/scripts 

 script = '"c:/Program Files/xampp/php/php.exe" c:/Users/Maxime/Desktop/sleep.php ' + param 

 os.system(script

 th = th -

# On peut lancer manuellement des scripts, hors boucle for (par exemple un script perl) 

a = threading.Thread(None, lancement, None, ('1',)) 

b = threading.Thread(None, lancement, None, ('5',)) 

a.start() 

b.start() 

# On lance la boucle des threads 

# Le tableau li contient les paramètres à passer au script. Il lancera en parallèle les scripts 

# avec les différents paramètres. 

li = ['www.siteA.fr', 'www.siteB.fr', 'www.siteC.fr'

for s in li

 s = threading.Thread(None, lancement, None, (s,)) 

 s.start() 

# Le thread qui surveille la fin d'exécution des autres threads 

# Permet de signaler la fin d'exécution des scripts lancés s'ils n'ont pas de fenêtres 

def alert()

 global th 

 while th &gt; 0

 # On ne fait rien 

 continue 

 fen = Tk() 

 fen.title('Outils Vaisonet'

 tex = Label(fen, text='Les tâches sont terminées !', width=45, height=3

 tex.pack() 

 bou = Button(fen, text='Ok', command = fen.destroy

 bou.pack() 

 fen.mainloop() 

 print("fini", th

EA = threading.Thread(None, alert, None

EA.start()

Le script est bien commenté, mais voici quelques explications complémentaires pour son intégration avec php. Il faut sortir la boucle foreach de votre script php pour l’intégrer dans le script Python. On appelle ensuite votre script php en ligne de commande. Cela veut donc dire qu’il faut savoir utiliser $argv pour passer le paramètre. Voici un exemple, mon fichier sleep.php de test 

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 4/21 

21/08/2020 Scripts PHP 

echo "toto" . $argv[1]

sleep(30)

Et si vraiment vous voulez tenter de faire du mutlithreading avec php, faites un tour du côté de stream_select

La solution avec cURL pose parfois des problèmes, mais vous pouvez essayer : Multithreading avec Curl et PHP 

Ce n’est pas l’astuce SEO Black Hat de la mort qui tue, mais je suis sûr que vous trouverez des applications qui vous seront utiles �� 

Bon code. 

Commentaires (12) 

Catégorie: Scripts PHP 

Besoin d'une prestation en référencement ? 

Nous contacter 

Générateur de (très) longue traîne 

Ecrit par 512banque le vendredi 28 mai 2010 à 14:40 - Catégorie Génération de contenu,Google,Scraping,Scripts PHP 

Tenter de se positionner sur des expressions fortement concurrentielles n’est pas forcément un choix judicieux. En effet, certains mots-clés demandent énormément d’efforts et génèrent finalement assez peu de trafic. Le retour sur investissement n’est donc pas au rendez-vous. 

Parfois, il vaut mieux tenter de cibler un ensemble de petites requêtes faciles à atteindre, ces requêtes mises bout à bout représentant un trafic non négligeable et dépassant bien souvent les requêtes « star ». 

Choisir des expressions de « longue traîne » consiste donc à faire varier l’expression clé principale en utilisant des synonymes et en y ajoutant d’autres mots, tels que la localisation ou d’autres spécificités. Au lieu de chercher à se positionner sur « plombier », on va préférer « plombier dijon » ou « plombier bourgogne » et ainsi de suite pour toutes les grosses villes de france et tous les départements. 

Pour trouver des expressions de longue traîne, on peut utiliser notre imagination, mais également les suggestions de google (google suggest) ou la fameuse « roue magique »… Ou bien les deux en même temps ! J’ai ainsi couplé le script de la wonder wheel à celui de google suggest, les deux se trouvant sur Seoblackout �� 

J’ai donc cherché le mot clé « referencement », et en dédoublonné ça m’a donné 650 expressions. Evidemment, il faut faire le tri car on trouvera des expressions aussi peu ciblées que « chiffre d affaires restauration rapide » ou « taux de transformation chimie » mais rien ne vaut une review manuelle pour un travail propre. 

Au niveau du script, je sais qu’il existe de nombreuses pistes d’amélioration, mais franchement entre nous… Ca marche et ça me va bien comme ça �� 

Voici la bête : 

<?php header('Content-Type: text/html; charset=UTF-8'); ?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> 

<head> 

 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 

 <title>Long tail</title> 

 <meta http-equiv="content-style-type" content="text/css" /> 

</head> 

<body> 

<?php 

// Auteurs du script : Beunwa http://divioseo.fr/ & Tiger http://www.seoblackout.com 

// Modifications par 512banque http://www.deliciouscadaver.com 

// Url article du script pour bugs, commentaires... : http://www.seoblackout.com/2010/05/28/generateur-de-tres-longue-traine/ 

//Site Web : http://www.seoblackout.com 

$etape = strip_tags($_GET['etape'])

switch($etape) {

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 5/21 

21/08/2020 Scripts PHP 

case '1': ?> 

<form action="?etape=2" method="post"> 

<table><tr><td> 

Keyword : <textarea name="kw" rows="10"> 

<?php 

if((isset($_POST['kw'])) && $_POST['kw']!=''

$q=strip_tags($_POST['kw'])

foreach(google_wheel($q) as $kws){ echo $kws."\n";

flush()

else 

echo 'Veuillez saisir un mot-clé !'

?></textarea> 

</td><td> 

et <textarea name="mix2" rows="10"><?php echo 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 

break

case '2': ?> 

<form action="?etape=3" method="post"> 

<h3>Dédoublonner et faire le ménage</h3> 

<form action="?etape=3" method="post"> 

<textarea rows="20" cols="60" name="kw"> 

<?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

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html6/21 

21/08/2020 Scripts PHP 

if(strip_tags($_POST["alph"]) == "on"){ 

$alpha= "a"

while($alpha != "z"){ 

ggSuggest($lst.' '.$alpha, $lang, $depth)

$alpha= ++$alpha

} ?> 

</textarea> 

<br /> 

<input type="submit" value="Go" /> 

</form> 

<?php 

break

case '3'

$keywords= explode("\r\n", $_POST['kw'])

foreach($keywords as $k=>$v){ 

if(preg_match('#^(.*) [\w]$#',$v)){ 

unset($keywords[$k])

}} 

$keywords= array_unique($keywords)

?> 

<h3><?php echo count($keywords); ?> expressions uniques générées</h3> 

<p>Pensez à faire le tri ;)</p> 

<?php 

foreach($keywords as $k=>$v){ 

echo $v.'<br />'

break

default: ?> 

<form action="?etape=1" method="POST"> 

 Saisir un mot-clé : <input id="kw" name="kw" type="text" size="" /><br />  <button id="submit" name="submit" type="submit" value="submit">submit</button> </form> 

<?php 

function google_wheel($q){ 

$res_final= array()

$q=urlencode($q)

$search_url="http://www.google.com/search?q=$q&hl=fr&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);

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html7/21 

21/08/2020 Scripts PHP 

$search_url2="http://www.google.com/search?q=$value2&hl=fr&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)

foreach($response3 as $key => $value

$res_final[]=str_replace(array('r2:','[',']'),'',$value)

flush()

 return array_unique($res_final)

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= strip_tags($v[1])

if(!in_array($tk, $tabKw)){ 

$tk= str_replace('\r',"", $tk)

$kwr= $nbresult[$ii][1]

if($kwr == "") $kwr=0;

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html8/21 

21/08/2020 Scripts PHP 

//echo $kwr.' ; '.$tk.'<br />'; je ne veux pas du nombre de résultats 

echo $tk."\n"

$ii++;  

flush()

ggSuggest($tk, $lang, $depth, $inc+1)

return $tabKw

?> 

Pour utiliser cette liste, il vous suffit créer des pages uniques suffisament différentes les unes des autres, une pour chaque mot-clé. Le meilleur moyen de faire ça, c’est d’utiliser un script de spin de votre fabrication ou bien d’acheter un script de content spinning

Et puisque Tiger m’offre un deuxième lien, j’en profite pour vous présenter le futur site de mon agence de référencement à Chambéry. 

Bonne longue traîne à tous �� 

Commentaires (27) 

Catégorie: Génération de contenu,Google,Scraping,Scripts PHP 

Besoin d'une prestation en référencement ? 

Nous contacter 

Script pour surveiller l’indexation Google. 

Ecrit par lemoussel le vendredi 28 mai 2010 à 8:31 - Catégorie Google,Référencement,Scripts PHP 

Je ne vais rien vous apprendre en vous indiquant que le moteur de recherche Google est omniprésent. Il est donc important, lors du lancement d’un nouveau site, de surveiller l’indexation des pages du site dans ce moteur de recherche. 

Afin de surveiller le référencement d’une ou de plusieurs pages d’un ou plusieurs sites je vous propose ce petit outil “CheckIndex” qui vous permettra de mieux maitriser l’indexation (ou non) de votre site dans le moteur de recherche Google. Il peut aussi vous permettre de connaître la qualité d’indexation Google d’un concurrent ou d’un partenaire éventuel ! 

Deux points à noter pour utiliser cet outil. Vous devez avoir PHP 5 et la librairie cURL (libcurl) installés sur votre serveur . 

Dans cet article je vous propose de voir comment se servir de CheckIndex et de vous présenter les trois fonctions suivantes que cet outil de suivi d’indexation utilise : 

get_string_between : Fonction permettant de récupérer le texte contenu entre deux balises. 

google_search_api : Comme son nom l’indique cette fonction permet d’effectuer la recherche sur Google 

get_web_page : Récupération d’une page HTML. 

get_string_between 

<?php 

function get_string_between($string, $start, $end

 $string = ' '.$string

 $ini = strpos($string,$start)

 if ($ini == 0) return ''

 $ini += strlen($start);  

 $len = strpos($string,$end,$ini) - $ini

 return substr($string,$ini,$len)

?>

google_search_api 

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 9/21 

21/08/2020 Scripts PHP 

Utilisation de AJAX API de Google. 

L’utilisation de cet API est expliquée en détail sur cette page: Class Reference Google AJAX Search API

<?php 

function google_search_api($args

$referer = 'http://' . $_SERVER["HTTP_HOST"] . $_SERVER['REQUEST_URI'] . ''

if ( !array_key_exists('v', $args) ) $args['v'] = '1.0'

$dataGoogleSearch = get_web_page('http://ajax.googleapis.com/ajax/services/search/web?'.http_build_query($args, '', '&'))

if (stristr($dataGoogleSearch['content'], 'GwebSearch') === false) return false

else return true

?> 

get_web_page 

Fonction de récupération d’une page HTML avec : 

Sélection d’un User Agent tiré au hasard donc différent pour chaque interrogation. 

Détermination du Internet media type (mime), à l’origine appelé Type MIME ou juste MIME ou encore Content-type. 

Détermination du jeu de caractères (charset). 

<?php 

function get_web_page($url

$UAlist[] = array('os' => 'Windows', 'useragent' => "Avant Browser/1.2.789rel1 (http://www.avantbrowser.com)")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/5.0 (Windows; U; Windows XP) Gecko MultiZilla/1.6.1.0a")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/3.01Gold (Win95; I)")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/4.8 [en] (Windows NT 5.1; U)")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.4) Gecko Netscape/7.1 (ax)")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Opera/7.50 (Windows XP; U)")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Opera/7.51 (Windows NT 5.1; U) [en]")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; en) Opera 8.0")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.2b) Gecko/20021001 Phoenix/0.2")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser; Avant Browser; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0; .NET CLR 2.0.5072 $UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.0 Safari/532.5"); $UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.310.0 Safari/532.9"); $UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; en-US; rv:1.9pre) Gecko/2008072421 Minefield/3.0.2pre")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)"); $UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 GTB5")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/5.0)")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0)")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0 )")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Opera/9.25 (Windows NT 6.0; U; en)")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Opera/9.80 (Windows NT 5.2; U; en) Presto/2.2.15 Version/10.10")

$UAlist[] = array('os' => 'Windows', 'useragent' => "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10"); $UAlist[] = array('os' => 'Mac', 'useragent' => "Mozilla/2.02E (Win95; U)")

$UAlist[] = array('os' => 'Mac', 'useragent' => "Mozilla/4.0 (compatible; MSIE 5.15; Mac_PowerPC)")

$UAlist[] = array('os' => 'Mac', 'useragent' => "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.2 (KHTML, like Gecko) Safari/85.8")

$UAlist[] = array('os' => 'Mac', 'useragent' => "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.2 (KHTML, like Gecko) Safari/125.8")

$UAlist[] = array('os' => 'Mac', 'useragent' => "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/532.8 (KHTML, like Gecko) Chrome/4.0.302.2 Safari/532.8"); $UAlist[] = array('os' => 'Mac', 'useragent' => "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.0.3) Gecko/2008092414 Firefox/3.0.3")

$UAlist[] = array('os' => 'Mac', 'useragent' => "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1) Gecko/20090624 Firefox/3.5")

$UAlist[] = array('os' => 'Mac', 'useragent' => "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.15")

$UAlist[] = array('os' => 'Mac', 'useragent' => "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US) AppleWebKit/528.16 (KHTML, like Gecko, Safari/528.16) OmniWeb/v622.8.0.112941"); $UAlist[] = array('os' => 'Mac', 'useragent' => "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-US) AppleWebKit/528.16 (KHTML, like Gecko, Safari/528.16) OmniWeb/v622.8.0"); $UAlist[] = array('os' => 'Mac', 'useragent' => "Opera/9.0 (Macintosh; PPC Mac OS X; U; en)")

$UAlist[] = array('os' => 'Mac', 'useragent' => "Opera/9.20 (Macintosh; Intel Mac OS X; U; en)");

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 10/21 

21/08/2020 Scripts PHP 

$UAlist[] = array('os' => 'Mac', 'useragent' => "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr-fr) AppleWebKit/312.5 (KHTML, like Gecko) Safari/312.3"); $UAlist[] = array('os' => 'Mac', 'useragent' => "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/418.8 (KHTML, like Gecko) Safari/419.3"); $UAlist[] = array('os' => 'Mac', 'useragent' => "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10"); $UAlist[] = array('os' => 'Linux', 'useragent' => "ELinks (0.4pre5; Linux 2.6.10-ac7 i686; 80x33)")

$UAlist[] = array('os' => 'Linux', 'useragent' => "ELinks/0.9.3 (textmode; Linux 2.6.9-kanotix-8 i686; 127x41)")

$UAlist[] = array('os' => 'Linux', 'useragent' => "Links (2.1pre15; Linux 2.4.26 i686; 158x61)" )

$UAlist[] = array('os' => 'Linux', 'useragent' => "Links/0.9.1 (Linux 2.4.24; i386;)")

$UAlist[] = array('os' => 'Linux', 'useragent' => "Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/0.8.12")

$UAlist[] = array('os' => 'Linux', 'useragent' => "w3m/0.5.1")

$UAlist[] = array('os' => 'Linux', 'useragent' => "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.10.1"); $UAlist[] = array('os' => 'Linux', 'useragent' => "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.4 (KHTML, like Gecko) Chrome/4.0.237.0 Safari/532.4 Debian"); $UAlist[] = array('os' => 'Linux', 'useragent' => "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.8 (KHTML, like Gecko) Chrome/4.0.277.0 Safari/532.8" ); $UAlist[] = array('os' => 'Linux', 'useragent' => "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.309.0 Safari/532.9"); $UAlist[] = array('os' => 'Linux', 'useragent' => "Dillo/2.0")

$UAlist[] = array('os' => 'Unix', 'useragent' => "Mozilla/5.0 (X11; U; SunOS sun4m; en-US; rv:1.4b) Gecko/20030517 Mozilla Firebird/0.6")

$UAlist[] = array('os' => 'Unix', 'useragent' => "Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.9.1b3) Gecko/20090429 Firefox/3.1b3")

$UAlist[] = array('os' => 'Unix', 'useragent' => "Mozilla/5.0 (X11; U; OpenBSD i386; en-US; rv:1.9.1) Gecko/20090702 Firefox/3.5")

$UAlist[] = array('os' => 'Unix', 'useragent' => "Mozilla/5.0 (compatible; Konqueror/3.5; NetBSD 4.0_RC3; X11) KHTML/3.5.7 (like Gecko)")

$UAlist[] = array('os' => 'Unix', 'useragent' => "Mozilla/5.0 (compatible; Konqueror/3.5; SunOS) KHTML/3.5.1 (like Gecko)")

$UAlist[] = array('os' => 'Unix', 'useragent' => "Mozilla/5.0 (compatible; Konqueror/4.1; DragonFly) KHTML/4.1.4 (like Gecko)")

$UAlist[] = array('os' => 'Unix', 'useragent' => "Mozilla/5.0 (compatible; Konqueror/4.1; OpenBSD) KHTML/4.1.4 (like Gecko)")

$UAlist[] = array('os' => 'Unix', 'useragent' => "Mozilla/5.0 (X11; U; FreeBSD; i386; en-US; rv:1.7) Gecko")

$UAlist[] = array('os' => 'Unix', 'useragent' => "Mozilla/4.77 [en] (X11; I; IRIX;64 6.5 IP30)")

$UAlist[] = array('os' => 'Unix', 'useragent' => "Mozilla/4.8 [en] (X11; U; SunOS; 5.7 sun4u)")

$options = array

CURLOPT_RETURNTRANSFER => true,  

CURLOPT_HEADER => false,  

CURLOPT_FOLLOWLOCATION => true,  

CURLOPT_ENCODING => '',  

CURLOPT_AUTOREFERER => true,  

CURLOPT_CONNECTTIMEOUT => 10,  

CURLOPT_TIMEOUT => 10,  

CURLOPT_MAXREDIRS => 10,  

CURLOPT_FAILONERROR => true

CURLOPT_USERAGENT => $UAlist[array_rand($UAlist)]['useragent']

 CURLOPT_COOKIEJAR => 'CookieJar'

 CURLOPT_COOKIEFILE => 'CookieTxt'

)

$ch = curl_init( $url )

curl_setopt_array( $ch, $options )

$content = curl_exec( $ch )

$err = curl_errno( $ch )

$errmsg = curl_error( $ch )

$header = curl_getinfo( $ch )

curl_close( $ch )

 preg_match( '@([\w/+]+)(;\s+charset=(\S+))?@i', $header['content_type'], $matches_header )

 preg_match( '@<meta\s+http-equiv="Content-Type"\s+content="([\w/]+)(;\s+charset=([^\s"]+))?@i', $content, $matches_meta )

 if ( isset( $matches_header[1] ) ) 

 $header['mime'] = $matches_header[1]

 else 

 if ( isset( $matches_meta[1] ) ) 

$header['mime'] = $matches_meta[1]

 if ( isset( $matches_header[3] ) ) 

 $header['charset'] = $matches_header[3]

 else 

 if ( isset( $matches_meta[3] ) ) 

$header['charset'] = $matches_meta[3]

$header['errno'] = $err

$header['errmsg'] = $errmsg

$header['content'] = $content

$header['charset'] = isset($header['charset']) ? $header['charset'] : 'utf-8'

return $header

?>

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 11/21 

21/08/2020 Scripts PHP 

Voilà nous avons terminés avec les fonctions. Voici donc le code source du “coeur” de CheckIndex. 

Son utilisation en est très simple. Il suffit de passer en paramètre un fichier sitemap au format XML contenant les URL à vérifier. 

http://www.monsite.com/CheckIndex.php?sitemap=http://www.monsite.com/sitemap.xml 

Pour rappel le fichier sitemap.xml doit être sous la forme : 

<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="http://www.insolite-du-geek.fr/wp-content/plugins/google-sitemap-generator/sitemap.xsl"?> <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/sche <url> 

<loc>URL1/</loc> 

</url> 

<url> 

<loc>URL2/</loc> 

</url> 

</urlset> 

Si vous voulez vérifier à intervalle régulier, il vous suffit alors d’appeler “CheckIndex” via une tache « cron » et de vous adresser un email contenant les Urls non indexées. 

CheckIndex 

<!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=utf-8" /> 

<title>CheckIndex</title> 

<style type="text/css"> 

<!-- 

body { font-family: verdana; font-size: 12px; background: #000; color: #fff; } 

a { color: #3399FF; } 

--> 

</style> 

</head> 

<body> 

<?php 

require 'get_string_between.php'

require 'google_search_api.php'

require 'get_web_page.php'

if(function_exists('set_time_limit')) set_time_limit(0)

if(isset($_GET['sitemap'])) 

$sitemapURL = urldecode($_GET['sitemap'])

$sitemapdata = get_web_page($sitemapURL)

$nbURL = substr_count($sitemapdata['content'], '<loc>')

ob_start()

for($idxURL = 1; $idxURL <= $nbURL; $idxURL++

$url = get_string_between($sitemapdata['content'], '<loc>', '</loc>')

$sitemapdata['content'] = str_replace('<loc>' . $url . '</loc>', '', $sitemapdata['content'])

 $flagIndexed = google_search_api(array("q" => "info:$url"))

if ($flagIndexed === true) echo '<span style="color:green;">' . $idxURL . ' ' . $url . '</span><br />'

else echo '<span style="color:orange;">' . $idxURL . ' ' . $url . '</span><br />'

ob_flush()

flush()

sleep(rand(1, 3));  

}

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 12/21 

21/08/2020 Scripts PHP 

ob_end_flush()

?> 

</body> 

</html> 

Commentaires (14) 

Catégorie: Google,Référencement,Scripts PHP 

Besoin d'une prestation en référencement ? 

Nous contacter 

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 : 

<?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> 

10 

</td><td> 

11 

et <textarea name="mix2" rows="10"><?=strip_tags($_POST['mix2'])?></textarea> 

12 

</td><td> 

13 

<br /> 

14 

Langue :  

15 

<select name="lang"> 

16 

<option value="fr">FR</option> 

17 

<option value="en">EN</option> 

18 

</select> 

19 

<br /> 

20 

Profondeur :  

21 

<select name="depth"> 

22 

<option value="1">1</option> 

23 

<option value="2">2</option> 

24 

<option value="3">3</option> 

25 

<option value="4">4</option> 

26 

<option value="5">5</option> 

27 

</select>  

28 

<br /> 

29 

Alphabet :<input type="checkbox" name="alph" /> 

30 

</td></tr></table> 

31 

<br /> 

32 

<input type="submit" value="Go" /> 

33 

</form> 

34 

<?php

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 13/21 

21/08/2020 Scripts PHP 

35 

if(isset($_POST['kw'])){ 

36 

$lang= strip_tags($_POST["lang"])

37 

if($lang == '') $lang= "fr"

38 

$depth= strip_tags($_POST["depth"])

39 

if($depth == '') $depth= "1"

40 

41 

$kwsd= array()

42 

$kwsd=explode("\n",trim(strip_tags($_POST["kw"])))

43 

foreach($kwsd as $lst){ 

44 

if($lst !="\n"){ 

45 

//mots cles simple 

46 

ggSuggest($lst, $lang, $depth)

47 

48 

//mots cles avec compléments 

49 

$kws2= array()

50 

$kws2=explode("\n",strip_tags($_POST["mix2"]))

51 

foreach($kws2 as $mix2){ 

52 

ggSuggest($lst.$mix2, $lang, $depth)

53 

54 

55 

//alphabet 

56 

if(strip_tags($_POST["alph"]) == "on"){ 

57 

$alpha= "a"

58 

while($alpha != "z"){ 

59 

ggSuggest($lst.' '.$alpha, $lang, $depth)

60 

$alpha= ++$alpha

61 

62 

63 

64 

65 

66 

67 

68 

function ggSuggest($kw, $lang, $depth=1, $inc=1){ 

69 

global $tabKw

70 

71 

$tabKw[]= $kw

72 

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

73 

if(function_exists('curl_init')){ 

74 

$header= array

75 

 "Accept: text/xml,application/xml,application/xhtml+xml, 

76 

text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"

77 

 "Accept-Language: fr-fr,fr;q=0.7,en-us;q=0.5,en;q=0.3"

78 

 "Accept-Charset: utf-8;q=0.7,*;q=0.7"

79 

 "Keep-Alive: 300")

80 

$ch= curl_init()

81 

 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false)

82 

 curl_setopt($ch, CURLOPT_HEADER, false)

83 

 curl_setopt($ch, CURLOPT_VERBOSE, true)

84 

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true)

85 

 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,5)

86 

 curl_setopt($ch, CURLOPT_TIMEOUT,5)

87 

 curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com/')

88 

 curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)'); 89 

 curl_setopt($ch, CURLOPT_HTTPHEADER, $header)

90 

 curl_setopt($ch, CURLOPT_URL, $url)

91 

$result=curl_exec($ch)

92 

curl_close($ch)

93 

} else

94 

$result= file_get_contents($url)

95 

96 

preg_match_all('/\["(.*?)",/si', $result, $kwgoogle, PREG_SET_ORDER);//mot 

97 

preg_match_all('/\,"(.*?)résultats",/si', $result, $nbresult, PREG_SET_ORDER);//nb resultats 

98 

99 

if($kwgoogle=='' || $inc> $depth){ 

100 101 102 103 104 105 

return $tabKw

}else

$ii=0

foreach($kwgoogle as $v){ 

$tk= utf8_decode(strip_tags($v[1]))

if(!in_array($tk, $tabKw)){

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 14/21 

21/08/2020 Scripts PHP 

106 

107 

108 

109 

110 

111 

112 

113 

114 

115 

116 

117 

118 

?> 

$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 : 

Google Suggest par Marie 

Test SEO : Impact de la recherche assistée de Google par Sylvain 

Commentaires (37) 

Catégorie: Google,Scripts PHP 

Besoin d'une prestation en référencement ? 

Nous contacter 

Php Scraping avec fonctions DOM et Xpath 

Ecrit par lemoussel le lundi 25 janvier 2010 à 22:15 - Catégorie Scraping,Scripts PHP 

Nous avons vu dans nos différents articles comment extraire/parser le contenu d’une page en utilisant les expressions régulières. La difficulté de cette approche est la maitrise de la rédaction des expressions régulières. Dans cet article, je vous propose d’essayer une autre méthode par l’utilisation des fonctions DOMDocument et DOMXPath de PHP 5. 

La question qui se pose alors : Comment déterminer la structure DOM d’un document HTML ? Cela ne va t’il pas être plus compliqué que les expressions régulières ? 

La réponse est non ! En effet avec le plug-in Firebug pour FireFox, l’exploration de la structure DOM d’une page HTML est très simple. Pour ce faire, nous allons reprendre l’exemple d’extraction des backlinks référencés par Alexa avec le petit blog de geektitude Insolite du Geek

Sous FireBug, il suffit de sélectionner la première URL (1), le chemin Xpath s’affiche alors (2). Il nous suffit “Copier le chemin XPath” (3). 

Nous obtenons le chemin XPath (2) suivant : /html/body/div/div/div[3]/div/div/div/div/div/ol/li/div/p/a 

Et voilà le plus dur est fait ! Il suffit juste d’intégrer la requête XPath dans le script PHP suivant : 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 2 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3 

<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 

 <title>Scraping avec DOMDocument & DOMXpath</title> 7 

</head> 

<body>

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 15/21 

21/08/2020 Scripts PHP 

<?php 

10 

// Alexa Sites Linking to Insolite-du-Geek 

11 

$url = 'http://www.alexa.com/site/linksin;0/www.insolite-du-geek.fr'; 12 

$queryXPath = '/html/body/div/div/div[3]/div/div/div/div/div/ol/li/div/p/a'; 13 

14 

$dom = new DOMDocument()

15 

@$dom->loadHTMLFile($url)

16 

$x = new DOMXPath($dom)

17 

$nodeList = $x->query($queryXPath )

18 

foreach ($nodeList as $node

19 

20 

?> 

21 

</body> 

22 

</html> 

echo utf8_decode(urldecode($node->nodeValue))."<br/>"

7 lignes de code PHP pour réaliser un scraping de page HTML. 

Remarques : 

1. Noter la présence du @ devant la fonction loadHTMLFile(). Cela évite d’avoir les messages de Warning PHP de défaut de structure DOM du document HTML. 

2. J’ai remarqué que dans certains cas Firebug, insére pour la balise <table> la balise <tbody>. Cette balise n’étant pas présente dans le document, il faut la supprimer de la requête XPath sinon aucun résultat ne sera obtenu. Sources : 

W3C Recommendation : XPath 1.0 standard 

Plus d’informations sur XPath : Xpath Tutorial 

Commentaires (16) 

Catégorie: Scraping,Scripts PHP 

Besoin d'une prestation en référencement ? 

Nous contacter 

Référencement : Google Suggest script PHP 

Ecrit par admin le mercredi 20 janvier 2010 à 12:20 - Catégorie Scripts PHP 

Le script google suggest a été mis à jour, vous pouvez consulter la nouvelle version ici : Google suggest, mais avant, je vous suggère de consulter le texte ci-dessous. 

Tout le monde ou presque connait Google Suggest, qui suggère automatiquement des termes de recherche au fur et à mesure que l’on saisit notre requête, à chaque fois que l’on tape une lettre supplémentaire, la liste est modifiée. Cet outil fournit également, à côté de chaque suggestion, une estimation du nombre de résultats sur google que renvoit chaque mot-clé de la liste. 

Les mots-clés proposés correspondent « soit-disant » aux recherches que font fréquemment les internautes (d’où l’intérêt pour les référenceurs). 

Google Suggest 

Le script Google suggest que nous vous proposons, permet à partir d’un mot-clé, de trouver toutes les suggestions faites par Google pour ce mot-clé et les mots-clés trouvés et ainsi de suite selon la profondeur d’analyse choisie. 

Par exemple, si je saisis référencement, le script va extraire toutes les propositions de mots-clés en partant de référencement et pour chaque mot-clé trouvé, le script va à nouveau extraire les mots-clés correspondants et ainsi de suite. 

Ce script va ensuite éliminer les doublons pour vous proposer une liste unique de mots-clés. 

Script php Google suggest : 

Copiez le code ci-dessous dans un fichier que vous nommez google-suggest.php par exemple et uploadez-le sur votre FTP, il vous suffit ensuite d’appeler ce fichier pour trouver un max de mots-clés pour votre long tail �� 

<?php 

//Script Google Suggest by http://www.seoblackout.com 

// Auteurs du script : Beunwa http://divioseo.fr/ & Tiger http://www.seoblackout.com

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 16/21 

21/08/2020 Scripts PHP 

4

// Url article du script pour bugs, commentaires... : http://www.seoblackout.com/2010/01/20/referencement-google-suggest/ 5

//le script affiche les resultats au fur et a mesure mais les renvois aussi dans un tableau au besoin 6

?> 

7

<form action="" method="post"> 

8

Keyword : <input name="kw" type="text" value="<?php echo strip_tags($_POST['kw']); ?>" /> 

<br /> 

10 

11 

12 

13 

14 

15 

16 

17 

18 

19 

20 

21 

22 

23 

24 

25 

26 

</form> 

27 

<?php 

28 

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 /> 

<input type="submit" value="Go" /> 

if(isset($_POST['kw'])){ 

29 

30 

31 

32 

33 

34 

35 

36 

37 

38 

$kw= strip_tags(utf8_encode($_POST["kw"])); $lang= strip_tags($_POST["lang"]); if($lang == '') $lang= "fr"

$depth= strip_tags($_POST["depth"]); if($depth == '') $depth= "1"

ggSuggest($kw, $lang, $depth)

function ggSuggest($kw, $lang, $depth=1, $inc=1){ 

39 40 41 42 

global $tabKw; $tabKw[]= $kw

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

43 44 45 

if(function_exists('curl_init')){ $header= array

"Accept: text/xml,application/xml,application/xhtml+xml, 

46 47 

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", 48 

 "Accept-Charset: utf-8;q=0.7,*;q=0.7"

49 

 "Keep-Alive: 300")

50 

$ch= curl_init()

51 

 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false)

52 

 curl_setopt($ch, CURLOPT_HEADER, false)

53 

 curl_setopt($ch, CURLOPT_VERBOSE, true)

54 

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true)

55 

 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,5)

56 

 curl_setopt($ch, CURLOPT_TIMEOUT,5)

57 

 curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com/')

58 

 curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)'); 59 

 curl_setopt($ch, CURLOPT_HTTPHEADER, $header)

60 

 curl_setopt($ch, CURLOPT_URL, $url)

61 

$result=curl_exec($ch)

62 

curl_close($ch)

63 

} else

64 

$result= file_get_contents($url)

65 

66 

preg_match_all('/\["(.*?)",/si', $result, $kwgoogle, PREG_SET_ORDER)

67 

68 

if($kwgoogle=='' || $inc> $depth){ 

69 

return $tabKw

70 

}else

71 

foreach($kwgoogle as $v){ 

72 

$tk= utf8_decode(strip_tags($v[1]))

73 

if(!in_array($tk, $tabKw)){ 

74 

echo $tk.'<br />';

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 17/21 

21/08/2020 Scripts PHP 

75 

76 

77 

78 

79 

80 

81 

82 

83 

?>

flush()

ggSuggest($tk, $lang, $depth, $inc+1)

return $tabKw

Démo du script Google Suggest : 

Pas de démo en ligne, par contre voici le résultat obtenu pour la recherche référencement : 

référencement 

referencement 

referencement gratuit 

referencement gratuit automatique 

referencement gratuit google 

referencement gratuit sans lien retour 

referencement gratuit site web 

referencement gratuit sur google 

referencement gratuit moteurs de recherche 

referencement gratuit blog 

referencement gratuit sans lien de retour 

referencement gratuit annuaire 

referencement gratuit yahoo 

referencement google 

referencement google gratuit 

referencement google gratuite 

referencement google site 

referencement google sitemap 

referencement google sites 

referencement google site internet 

referencement google site joomla 

referencement google maps 

referencement google prix 

referencement google joomla 

referencement google payant 

referencement google flash 

referencement-google.fr 

referencement google tarif 

referencement google tarifs 

referencement newsgroup 

referencement newsgroups 

referencement newsgroup francais 

referencement newsgroup binaire 

referencement newsgroup binaires 

referencement newsgroup fr 

referencement newsgroup free 

referencement newsgroup gratuit 

referencement newsgroupe 

referencement newsgroup us 

référencement naturel 

référencement naturel définition 

referencement naturel google 

referencement naturel google gratuit 

référencement naturel seo 

référencement naturel comment ça marche 

référencement naturel et payant 

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 18/21 

21/08/2020 Scripts PHP 

référencement naturel payant 

référencement naturel blog 

référencement naturel internet 

référencement naturel joomla 

referencement naturel sur google 

referencement yahoo 

referencement yahoo gratuit 

referencement yahoo.fr 

referencement site internet 

referencement site internet gratuit 

referencement site internet google 

referencement site internet bordeaux 

referencement.com 

referencement.com group 

referencement.com boursorama 

referencement site web 

referencement site web gratuit 

referencement site web google 

referencement site web tunisie 

referencement site web pdf 

referencement site 

referencement site google 

referencement site google gratuit 

referencement site flash 

referencement site joomla 

referencement site iweb 

referencement site free 

référencement définition 

référencement définition marketing 

referencement blog 

referencement blog gratuit 

referencement blog google 

referencement blog wordpress 

référencement blogs 

referencement blogspot 

referencement web 

referencement web gratuit 

referencement webmaster 

referencement webradio 

referencement web maroc 

référencement webdev 

referencement webrankinfo 

referencement web 2.0 

referencement web tuto 

referencement web wikipedia 

référencement payant 

référencement payant définition 

referencement payant google 

référencement payant prix 

Un grand merci à Beunwa du site Création de site Dijon qui a largement amélioré le script de départ �� 

Commentaires(45) 

Catégorie: ScriptsPHP 

Besoind'uneprestationenréférencement? 

Nouscontacter 

Page suivante »

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 19/21 

21/08/2020 Scripts PHP 

Accueil 

Connexion 

Syndication 

Rechercher 

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 ! 

Catégories 

Actualités référencement 

Backlinks 

Captchas 

Cloacking 

Concours de référencement 

Génération de contenu 

Google 

Msn Live 

Optimisation Adsense 

Outils de spam 

Outils référencement 

Proxies 

Référencement 

Sécurité Internet et SEO 

Scraping 

Scripts PHP 

SEO BlackOut Life 

Pages 

Consultant référencement (SEO) 

Présentation 

Devis référencement 

Contacts 

Créer un lien 

Crédits et mentions légales 

Informations juridiques 

Plan du site SEO BlackOut 

Blogroll 

Seo Hero Top 

Sébastien Billard 

Olivier Consultant seo 

Innastudio

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 20/21 

21/08/2020 Scripts PHP 

Kablink 

Café Référencement 

Référenceur 

Mouton Noir 

Beetle-seo 

Oseox Trafic 

SEO Hero 

Mickael Consultant Seo 

Outil Seo 

Création site internet 

Pink Seo Blog 

Agence Seo Hackers 

Logiciel SEObserver 

Stratégie de visibilité 

Seo Caen 

Laurent Bourrelly 

Consultant SEO 

AJblog Webdesign 

Net Developpeur 

Agence référencement Paris 

Concours de référencement 

Jimenez Julien 

Seo News 

Cultivaref 

Marketing Internet 

Google+ 

Nous suivre sur Twitter 

Copyrights SeoBlackOut 2007 - 2019 © Propulsé par WordPress 

40 requêtes bdd. 

Page générée en 0,504 secondes.

file:///E:/infos Gsuite et ressources diverses 2020/Pages HTML-2020-doc's°°°(partie 2))-scripts-more...°°/Scripts PHP email GMAIL.html 21/21 


Commentaires

Posts les plus consultés de ce blog

💥 TOP Best Chat GPT Prompts for Marketers - 2024

La liste de contrôle SEO

Meilleurs outils de référencement 🛠 organisée par Saijo George

Insérer un formulaire de contact - Zbooing : Astuces pour Google Sites

100 outils pour lancer sa startup sans argent (mais pas sans talent)

30 prompts marketing ChatGPT à utiliser d'urgence ! | Conseils Rédaction Web

💥Top BEST invites ChatGPT pour le succès du dropshipping *° 2024

Questions et réponses sur l'évaluation de la certification YouTube Music en 2021 + examen final Certification Ateliers Numériques 2022

La liste de contrôle SEO complète en 51 points pour 2024

Les meilleurs GPTs pour vous aider dans votre travail de rédaction