k-html : faîtes tout, plus vite, plus fort, et mieux

Que vous soyez développeur, référenceur, codeur HTML, ou simple kikoolol accro à msn/skyblog, vous avez souvent besoin d’écrire des morceaux de texte longs et répétitifs.
Si la solution du fichier-texte-sur-le-bureau-dans-lequel-on-va-enregistrer-des-bouts-de-texte peut convenir pour des tâches vraiment identiques et répétitives, ce type de fonctionnement reste malgré tout très lourd et très fastidieux.
L’idée serait donc d’avoir des raccourcis clavier simples qui permettraient d’écrire des bouts de texte automatiquement, une sorte d’autocomplétion automatique partout dans windows.
Plus fort que refsphere et informenter, voici l’outil idéal : k-html. (en minuscule et avec un tiret).
Il se base sur AutoHotkey, script sur lequel se basent pas mal d’autres outils SEO.
Le mécanisme est simple : vous enregistrez une suite de caractères, et à chaque fois que l’outil “voit” que vous la tapez, il la remplacera par l’expression en bonne et dûe forme que vous aurez tapée.
Par exemple, vous faites Verr Maj+Espace, et il vous pond une page html vide (avec le DOCTYPE, les balises qui vont bien et même le contenu ! nan là je vais un peu loin).
Autre exemple, vous écrivez :
pain
raisin
tajine
tomates
mozzarella
Et vous sélectionnez votre liste, vous faites Shift+Win+U et il vous réécrit la liste sous forme de ul et de li bien propres. Vous pouvez également entrer une commande (dont je ne me souviens plus) et il vous formatera votre CSS et vous le réécrira en condensé si vous le souhaitez.
Il existe des raccourcis déjà entrés dans le logiciel, mais vous pouvez vous-même définir vos propres raccourcis, et c’est ça qui est plutôt sympa.
A vous de voir ce que vous écrivez souvent. Pour moi, c’est parfois des réponses-types à des clients (tous les clients demandent plus ou moins la même chose, il suffit d’organiser les paragraphes de manière logique et organisée). Cela me sert également au niveau des scripts que je conçois. Par exemple je tape : ²php et il le remplace par <?php echo $variable; ?>.
Pour d’autres, ce sera des expressions en arabe (slm remplacé par ‘as-salâmu ‘alaykûm).
Et pour les autres, ce sera pour spammer commenter ou inscrire dans les annuaires leur site internet. A vous de vous creuser les méninges pour trouver ce que vous écrivez souvent maintenant !
A vous également de le configurer pour éviter qu’il vous ferme automatiquement les guillemets et les parenthèses, et qu’il vous remplace AltGr+E par € et non pas par un truc infâme. Pour info, il faut faire Win+H et Win+K pour configurer les raccourcis. Et si vous avez un trou de mémoire, c’est Win+A.
Pour le téléchargement, c’est par ici : k-html.
Nota : il n’a rien à voir avec Khtml même si les noms sont très proches. En termes marketing, c’est un flop.
Le Web Scraping, ou comment piller les sites “à la volée”
Utiliser les données d’un autre site sur le sien, cela est facile avec, notamment, les flux RSS : vous avez automatiquement les dernières news d’un site, et vous les parsez à l’aide d’un petit outil php (comme lastRSS que vous pimpez un peu par exemple). L’inconvénient, c’est qu’en l’état, un flux RSS est assez pauvre en informations, et l’autre énorme inconvénient c’est que c’est orgnisé et donc “consenti” par l’auteur.
A l’inverse, le Web scraping va consister à aller s’approvisionner en informations, en quelque sorte “pomper” un autre site, et ce de manière complètement automatisée. Le script que je donne est assez basique et ne permet pas d’aller bien loin, puisque cela va se contenter d’afficher en temps réel les données présentes sur un autre site. Cela ne va pas “stocker” l’information donc si l’info disparaît sur le site cible, elle disparaît sur le vôtre également (ce que vous pourriez faire à l’aider d’un outil de scraping basique, une base de données, et une tâche cron).
Tout d’abord, il faut que vous ayez une connaissance parfaite des regex, ou “expressions régulières”.
En gros, une regex va chercher des schémas, et va ainsi identifier des suites de texte ou de chiffre dans une chaîne donnée. Je ne vais pas m’attarder, vous avez tout sur internet pour comprendre les bases et vous pourrez également tester vos regex.
En tout état de cause, cette solution est très instable et absolument pas sécurisée puisqu’il suffit que votre site cible s’aperçoive du subterfuge et/ou décide de changer son code source de manière minime pour que tout votre outil s’effondre : vous êtes totalement tributaire du comportement de la cible. C’est pourquoi, pour éviter de surcharger et d’innonder de requêtes votre cible, vous mettrez en place un système de cache basique. Et arrangez-vous également pour appliquer un htmlentities, strip_tags et compagnie sur les strings (chaînes de texte) que vous récupérez.
La première étape, c’est d’aller chercher l’info croustillante sur le site cible. Vous ouvrez le code source, vous regardez grosso modo comment il est fichu. Vous isolez l’information qui vous intéresse. Ensuite vous faîtes votre regex, et vous affichez son contenu sur votre site.
Un exemple valant mieux que mille mots, en voici un que j’ai utilisé il y a quelques temps sur israel-stop pour avoir un site qui se met à jour tout seul, histoire qu’il bouge un minimum : j’ai ciblé une page de yahoo news mieux positionnée que moi dans les résultats et ai appliqué un script ridiculement simple, et très très sale.
<?php // on définit l'URL du fichier $urlfichier = "http://fr.news.yahoo.com/fc/israel-palestiniens.html"; // on définit ainsi le flux $flux = implode ('', file ($urlfichier)); // on repère une portion du code située au début de la chaine $indicateur_debut= '<ul id="ynw-mrst" class="bul" >'; // on supprime tout avant cette portion, $a = substr($flux, strpos($flux,$indicateur_debut)); //$a = substr($a,strlen($indicateur_debut)); // cette portion incluse (81 caractères) // on repère une portion du code située à la fin de la chaine $indicateur_fin= '</ul>'; // on supprime tout après cette portion $a = substr($a, 0,strpos($a,$indicateur_fin)); //on remplace par des liens en absolu $a = ereg_replace('<a href="','<a href="http://fr.news.yahoo.com',$a); $a = ereg_replace('<cite>','<br /><cite>',$a); echo utf8_encode($a); ?>
Autre exemple tout simple, je cherche à afficher la date du jour au format hégirien (format “islamique”). J’ai une première solution : je cherche une fonction qui va convertir une date grégorienne en date islamique. Le problème, c’est qu’il n’y a pas de fonction précise, puisque la détermination du mois islamique se fait à l’oeil nu, donc elle peut toujours varier d’un jours.
Autre solution, je me connecte sur al jazeera ou arabnews et je scrape la date pour l’afficher automatiquement chez moi, en faisant par exemple :
$flux = file_get_contents('http://www.arabnews.com/'); //format du code source de la date <span class="date1">Friday 8 May 2009 (13 Jumada al-Ula 1430)</span> preg_match_all('@<span class="date1">(.+)\((.+)\)</span>@', $flux, $matches); $date_hijri = $matches[2][0]; echo $date_hijri;
Plus dur, meilleur, plus fort, plus rapide : le webscraping de niveau 2
Alors là, vous allez faire en sorte de faire disparaître toute référence et tout lien vers le site de votre cible. C’est osé, mais ça peut en valoir la peine.
Par exemple, à l’époque, je vendais les terrains d’un lotisseur pour y construire des maisons dessus. Il était tellement bête qu’il ne proposait aucun outil de portabilité de sa base de données. J’ai donc créé ça et ça m’a permis de montrer aux clients que j’avais une base de données de terrains énorme.
En fait la structure était simple :
Il y avait une première page de type :
http://www.sitedulotisseur.com/afficher_terrains_par_departement.php?departement=73
Et une seconde page de type :
http://www.sitedulotisseur.com/afficher_terrain.php?id=45
J’ai donc affiché tous les liens vers tous les départements, et ai remplacé les liens absolus (http://www.sitedulotisseur.com/afficher_terrain.php?id=45) par des liens en absolu vers une page sur MON serveur reprenant la même structure de base de données.
Au final j’obtenais :
http://www.monsite.com/afficher_terrains_par_departement.php?departement=73
et tous les liens présents sur cette page redirigeaient vers des pages de type :
http://www.monsite.com/afficher_terrain.php?id=45
Et là est l’info est facile à récupérer.
Au final, ça m’a permis de vendre ses terrains donc il n’a pas eu à se plaindre (en plus il ne s’en est pas rendu compte).
Pour cette partie, pas de script, creusez-vous un peu les méninges ![]()
Rel=nofollow sur les liens externes… en cloaking bien sûr !
Vous connaissiez les techniques d’échange de liens de bâtard ?
Si vous avez trop honte et que vous ne voulez pas assumer, ou bien si vous êtes machiavélique, voilà la technique de bâtard++ à savoir le cloaking sur rel=nofollow.
Concrètement, vous faîtes une fonction cloak_nofollow() en php.
Dans cette fonction, vous faîtes un test sur IP ou sur domaine d’IP. Si c’est une IP de chez google vous affichez rel=nofollow. Sinon, vous n’affichez rien (yahoo ne prend pas en compte le nofollow).
Comme ça, sur tous vos liens, vous faîtes
<a href="http://www.bidule.com" <?= cloak_nofollow(); ?>>Texte du lien </a>
Entendons-nous bien : je ne cautionne pas cette pratique, je mets juste le doigt là-dessus pour éviter de (me) faire gruger dans les échanges de liens.
Mais avouez qu’un annuaire avec des milliers de page (générées par ceux qui s’inscrivent), et avec un fort PR… ce serait marrant non ?
Don’t be evil
Comment passer une page au copyscape en un seul clic
Copyscape, vous connaissez ?
C’est l’outil qui vous permet de voir si une page est dupliquée, et si oui, de quelles pages originales…
Le truc qui est plutôt lourdingue, c’est que pour copyscaper une page, il faut ouvrir copyscape dans un nouvel onglet, copier l’URL à scanner, et la coller dans l’onglet copyscape, puis faire “OK”.
Soit 4 opérations.
C’est trop. Optimisons un peu tout ça, sans acheter de compte premium (eh oui, ça coûte des sioux, or on les a pas, ou si on les a, c’est pour autre chose) !
D’abord, créez sur votre serveur préféré la page suivante :
<?php $postfields = array(); $postfields["q"] = $_GET['adresse_page_web']; $postfields["src"] = "front"; $url = "http://www.copyscape.com/?results"; $useragent = "Mozilla/5.0"; $referer = "http://www.copyscape.com"; //Initialise une session CURL $ch = curl_init($url); //CURL options curl_setopt($ch, CURLOPT_POST, 1); //On poste les données du tableau $postfields curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); //On définit un useragent ici Mozilla/5.0 //souvent les bots se font passés pour googlebot ce qui finalement est stupide //On passe donc un useragent banal curl_setopt($ch, CURLOPT_USERAGENT, $useragent); //On passe un referrer ici on passe la même page $url curl_setopt($ch, CURLOPT_REFERER, $referer); //on récupère le contenu de la page de résultat de la soumission dans une chaine curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // en cas de redirection (facultatif ici) //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //Page de résultats et fermeture de session $result = curl_exec($ch); curl_close($ch); //on peut faire un echo du résultat obtenu echo $result; ?>
Maintenant, clic droit dans votre firefox, et ajoutez l’onglet suivant :
javascript:location.href='http://adresse_de_votre_page_precedemment_créée?adresse_page_web='+encodeURIComponent(location.href)
Validez…
C’est que du bonheur !
Vote automatique, merci .
Ce que tout référenceur devrait réaliser à propos de Google Suggest
Depuis peu, Google a installé par défaut un module qui n’était disponible auparavant que sur Google Labs : il s’agit de Google Suggest.
Pour ceux qui ne connaissent pas le nom, il s’agit de la liste déroulante de choix qui propose automatiquement les résultats les plus tapés.
Petite démonstration en image :
Qu’est-ce que cela implique ?
Tout référenceur doit avoir ce qu’on appelle de manière technique “l’orientation client” dans le sang. C’est-à-dire que le référenceur doit toujours se dire “comment les gens vont tomber sur mon site ?”.
La première étape, c’est le choix des mots clefs sur lesquels on va se positionner, et de la stratégie de linking, de contenu, de titrage, etc qui va en découler.
Google Suggest bouleverse les habitudes
Par exemple, quelqu’un qui aurait spontanément tapé “référencement” avec les accents, va commencer son mot puis va voir la liste déroulante en dessous.
Cette personne, au même titre que n’importe qui d’entre nous, est flemmarde. Par conséquent, elle va appuyer une fois sur la touche flèche bas et va sélectionner le premier mot de la liste, à savoir “referencement” (sans accent).
Résultats pour “référencement”
Et résultats pour “referencement”
Or sur la page de résultat, on voit nettement la différence entre une requête avec accent et sans accent.
Si, auparavant, le découpage entre les recherches “referencement” vs “référencement” était, mettons, de 70%-30%, avec Google Suggest, vu que les gens sélectionneront “referencement” plus dans la liste au lieu de taper le mot en entier, ce découpage va passer à 95%-5%. Ce sont bien sûr des chiffres qui sortent de ma tête, mais je me base sur mon expérience perso (cf ci dessous).
Google suggest redessine donc complètement la stratégie web, en modifiant et en concentrant de plus en plus de requêtes vers un seul mot clé, une seule expression clé. Cela implique une concurrence accrue sur cette requête.
Personnellement, j’ai vraiment senti cela sur des requêtes pour lesquelles j’étais en 2ème place pour 2 expressions (avec accent et sans accent). Avant, les deux expressions (avec accent et sans accent) étaient dans mes top 5 mots clés recherchés. Maintenant, l’expression avec accent a disparu.
Ce que je viens de dire avec accent/sans accent est également valable avec singulier/pluriel, mot de liaison/pas de mot de liaison, etc.
Evidemment, rien de neuf à l’horizon : on savait déjà que les internautes cherchaient sans accent, au singulier, sans mot de liaison.
Plus que jamais, choisissez donc bien vos requêtes !
Comment forcer vos visiteurs à voter pour vous

Il existe un certain nombre de sites qui se basent sur le nombre de votes que vous remportez pour vous classer plus ou moins haut dans leur page : tous les sites collaboratifs type Wikio, les annuaires freeglobes, etc. C’est super sympa, car un vote, c’est quelque chose de court, de spontané : ces sites ne peuvent donc pas faire un filtre anti-spam de type captcha.
Alors spontanément, on pourrait se dire : il suffit de faire un générateur de vote que j’héberge sur mon serveur, et qui bombarde la nuit pendant que je dors tranquillement…
Que nenni ! Ce serait bien trop simple : les sites en question identifient les IP, et lorsqu’ils voient qu’une IP a déjà voté, alors ils ne prennent pas le vote en compte…
Mais alors, comment trouver plein d’adresses IP différentes ?
Arrêtez d’essayer de truquer votre IP en passant par plein de webproxies différents… C’est fastidieux, et c’est nul et honteux en plus, si on vous surprenait… Bref, où peut-on trouver plein d’IP ?
Chez vos visiteurs bien évidemment ! Le truc est d’utiliser leur adresse IP pour voter, en fait, faire en sorte que ce soient eux qui votent.
Mais comment faire en sorte qu’ils votent s’ils n’en ont pas envie ?
C’est là que le bât blesse : eh oui, un visiteur ne votera que s’il en a envie et qu’il a trouvé votre article intéressant… Or, votre article n’est pas intéressant, et vos visiteurs sont flemmards. Donc vous n’avez pas de votes, c’est d’une logique implacable.
Pas mal de moteurs de votes se basent sur la méthode GET pour voter. Ca signifie que pour voter pour un article, il y a une URL toute jolie toute propre (avec éventuellement un filtre sur Referer, c’est le cas pour Wikio)…
Donc…
Il faut faire en sorte que cette URL toute jolie toute propre soit demandée par le visiteur. Et quelle est la méthode bourrine et immonde ?
L’image !
Je vous livre le coeur du secret en une ligne. N’explosez pas de rire, fallait y penser :
<div style="display:none;"><img src="http://www.wikio.fr/article=91106576&vote=1" alt="" /></div>
A vous de faire fonctionner vos méninges pour exploiter la faille avec plein d’autres sites, et je vous assure qu’il y en a !
Par exemple, pour les annuaires freeglobes, la structure est de ce type :
http://nom_annuaire.free.fr/vote.php?id=votre_id
Autre solution pour le code, de BlackMelvyn :
Ca permet de retrouver plus facilement le texte caché dans la source, et le résultat est le même.
And remember, don’t be evil… ![]()
Seul le premier lien est pris en compte
Une petite expérience SEO révèle la chose suivante : lorsque 2 liens dans une même page pointent vers la même URL, Google ne prend en compte que la première ancre.
Par exemple :
La page http://www.deliciouscadaver.com/referencement/ameliorer-son-referencement.html sera référencée seulement sur la première expression, et pas sur la deuxième.
2ème expression
L’original en anglais dans le texte ci-dessous :
http://www.seo-scientist.com/first-link-counted-rebunked.html
Exemple d’échange de liens malhonnête (nofollow)
Dans le précédent article je vous parlais des échanges de liens malhonnêtes avec certains “partenaires”… J’ai modifié mon fichier chrome de Firefox pour faire apparaître les liens nofollow en rose.. Et voilà ce sur quoi je suis tombé sur une page d’échanges de liens…
L’échange de liens malhonnête
Je vous parle de cette technique, non pas parce que je l’applique ou que je la cautionne, mais parce qu’elle a vu le jour dans mon esprit tordu et paranoïaque.
En gros, pour résumer l’article, ça consiste à proposer à des gens des liens qui sont en dofollow mais en fait non, ils sont en nofollow.
Il existe une petite technique avec Firefox qui permet de repérer d’un coup d’oeil tous les liens qui sont en nofollow. Cette technique entoure en rouge les liens qui possèdent l’attribut “nofollow”.
Le problème, c’est que ça ne marche que pour les liens qui sont frappés de l’attribut rel=”nofollow”.
Or, il existe d’autres moyens de rendre des liens nofollow, sans pour autant utiliser l’attribut nofollow sur le lien lui-même :
- D’abord, le classique robots.txt localisé à la racine de votre site,
- Ensuite, le fameux meta nofollow,
- Ensuite l’écriture d’un lien en javascript, non pris en compte par les moteurs de recherche,
- Il y a aussi le fait de faire passer tout lien par une page intermédiaire de sortie en double meta refresh (pas de jus transmis),
- Enfin le cloaking conditionnel sur IP, sur cookie, sur referer ou tout ça à la fois (faire apparaître le lien pour un humain mais pas pour google, un peu risqué).. J’en parlerai plus tard
L’inconvénient des deux premières techniques est qu’elles condamnent tous les liens de la page, y compris les vôtres.
Bref, cet article n’est absolument pas exhaustif, et je voulais simplement vous sensibiliser aux risques d’échanger des liens avec des personnes malhonnêtes qui vous feront croire que le lien vers vous est clean, alors qu’il est en réalité en nofollow… Ca peut vous arriver dans le cadre d’échange de liens, dans le cadre de liens insérés dans du contenu, ou plus dégueulasse dans les liens des commentaires…
Par contre, vous pouvez faire ça pour les annuaires qui demandent un lien retour
Enfin, par rapport au nofollow, il faut savoir que certaines voix s’élèvent pour dire qu’il est quand même pris en compte par Google d’une manière indirecte…
SEO : Générer du contenu grâce à Poutine !
Oui, enfin pas tout-à-fait grâce à lui…
L’idée est d’utiliser des pages dans d’autres langues, et de les traduire en Français. Il existe en effet une méthode qui consiste à traduire du français vers l’anglais, puis de l’anglais vers le français, pour obtenir une jolie bouillie. Avec ça, on est obligé de cloaker…
Ma méthode consiste à aller piocher des articles (bien souvent de Wikipédia) dans une langue, et de la traduire une seule fois, vers le français, afin d’obtenir des articles propres et faciles à retoucher… Pour l’instant, le meilleur algorithme que j’ai trouvé, c’est celui qui permet de traduire Russe vers Français.
Imaginons notre ami Alain, qui a un site de voyage vers le Panama. Il veut naturellement faire une page optimisée pour “panama” ou pour “voyage panama”.
Soit Alain utilise Yacg et Markov, ou le coup du traduire-traduire, et là il sera obligé de cloaker, pour ne pas importuner ses visiteurs.
Soit il décide de prendre une page dans une autre langue, et de la passer en français, quitte à la remodifier un peu, sans avoir besoin de cloaker. De plus, c’est plus pérenne au cas où Google s’améliorerait en sémantique…
Il se rend donc sur “outils linguistiques” de Google, et tape sa requête…
Et le résultat le plus intéressant qu’il obtient est naturellement celui de Wikipédia…
Bien sûr, il y a des choses à redire, mais le résultat est globalement pas mal :
En 1513 Vasco Núñez de Balboa a franchi l’isthme de Panama et est devenu le premier des Européens qui ont vu l’océan Pacifique. En 1510, il fonde une colonie et devint gouverneur de la région. Peu de temps Portobelo a été un lieu de transfert de l’or Inca en Europe, prityagivaya britannique pirates dans ces lieux.Esclaves africains ont été portées. 1519 . La ville de Panama a été construit en 1519. Pirate anglais Henry Morgan, qui devint plus tard gouverneur de la Jamaïque, de pillages et de Portobelo, en 1671, la ville de Panama.
Alors oui, quand on fait copié collé depuis cet outil, on a aussi des morceaux de russe qui restent dans le texte… Mais si Alain est vraiment motivé, il saura faire une petite expression régulière en principe, non ?
L’idée originale provient de l’article de notre ami Tiger, ainsi que des nombreux commentaires qui ont suivi…










