đ„ TOP 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<=$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 = 0
def lancement(param):
global th
th = th + 1
# 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 - 1
# 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 > 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 :
1
<?php
2
//Script Google Suggest by http://www.seoblackout.com
3
// Auteurs du script : Beunwa http://divioseo.fr/ & Tiger http://www.seoblackout.com 4
// Contributeurs émérites : Seg http://www.wagablog.com/ & Meuhsli http://www.thugeek.com/ 5
// Url article du script pour bugs, commentaires... : http://www.seoblackout.com/2010/01/27/google-suggest/ 6
?>
7
<form action="" method="post">
8
<table><tr><td>
9
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 :
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 2
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3
4
<html xmlns="http://www.w3.org/1999/xhtml">
5
<head>
6
<title>Scraping avec DOMDocument & DOMXpath</title> 7
</head>
8
<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
9
<?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 ��
1
<?php
2
//Script Google Suggest by http://www.seoblackout.com
3
// 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']); ?>" />
9
<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
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
Enregistrer un commentaire
đ Hello,
N'hĂ©sitez pas Ă commenter ou vous exprimer si vous avez des trucs Ă dire . . .đ