Création de liens

Façons futuristes de créer des outils de création de liens automatisés

Rand vous a récemment demandé à tous des commentaires sur l’amélioration du blog. Les deux domaines sur lesquels vous nous avez demandé d’écrire davantage étaient création de liens et outils. Dans un geste populiste éhonté, j’ai pensé écrire un article sur outils d’automatisation (un peu de) création de liens.

Récemment, je n’arrête pas de rencontrer des façons dont nous vivons réellement dans le futur. Je ne parle pas de l’avenir du jet-pack-portant-des vacances-dans-l’espace-volant-car, plus le vache sacrée, vous pouvez réellement courir sélectionnez * à partir d’Internet où… genre d’avenir.

Oui, je sais que ce n’est pas aussi cool.

Je crois que les compétences techniques sont importantes en SEO. Il existe de nombreux rôles non techniques dans les agences ou les équipes de référencement (en particulier du côté créatif), mais si vous avez l’ambition de diriger des équipes, de définir une stratégie et de gérer des projets de référencement, vous devez en quelque sorte comprendre comment Internet fonctionne sous les couvertures. . Pour moi, cela signifie savoir comment construire des choses – même si je ne suis pas un développeur et qu’il ne faut jamais m’approcher du code de production, j’aime comprendre les concepts et les principes. Pour rester au courant des choses, cela signifie de temps en temps me salir les mains et construire des trucs. C’est marrant. Je peux fortement le recommander.

Afin de vous apporter quelque chose d’utile et d’actionnable, j’ai décidé de choisir quelque chose de simple que mon équipe voulait, quelque chose pour aider à la création de liens, mais aussi quelque chose que je pourrais mettre en place assez rapidement. J’ai choisi de construire un outil prototype pour surveiller le Web pour les mentions d’un site Web qui ne sont pas liées à ce site Web. J’espère qu’il est assez clair en quoi cela pourrait être utile – mais juste pour donner un exemple – si vous menez une campagne de relations publiques, vous pourriez bien obtenir une couverture qui ne vous concerne pas, mais si vous laissez simplement tomber le journaliste une ligne juste après la publication , ils peuvent souvent obtenir un lien inclus. Pour ceux d’entre vous qui pensent mieux en images, voici un schéma de ce que je veux dire, avec mes compétences limitées en dessin :

J’ai récemment écrit sur certains outils modérément techniques (par exemple Mozenda, Smartsheet) dans mon article sur les techniques de visualisation de données. Les outils que je vais aborder aujourd’hui sont encore plus techniques et avancés – mais ils sont aussi infiniment plus flexibles. Je ne veux pas vous faire peur en pensant que c’est quelque chose que vous ne pouvez pas faire vous-même. j’ai appris toutes les techniques et tous les outils ci-dessous et terminé mon mini-projet de zéro dans 2 heures. En fait, il me faudra plus de temps pour écrire le message que pour tout faire. Si je peux le faire, vous le pouvez aussi.

À 13 heures, heure du Royaume-Uni, le jeudi 15 avril, j’ai tweeté ceci :

Pourquoi ces outils particuliers ? Bien:

  • xpath vous permet de naviguer et de sélectionner des éléments et des attributs à partir d’un document XML (y compris HTML). Cela vous donne un moyen très simple d’extraire des informations des pages HTML
    • Comment cela aide mon mini-projet: J’obtiens un moyen simple d’extraire tous les liens d’une page afin de vérifier si la page en question renvoie vers vous
  • YQL (Yahoo! Query Language) est le sélectionnez * à partir d’Internet où … la magie dont j’ai parlé plus tôt. Il fournit une API que vous pouvez utiliser pour récupérer des pages, des flux RSS et tout un tas d’autres trucs sympas
    • Comment cela aide mon mini-projet: avec une ligne de code, je peux récupérer les flux RSS de mentions (pour ma preuve de concept, j’ai utilisé un flux RSS Google Alerts) ainsi que saisir les pages référencées afin d’exécuter xpath dessus (ai-je mentionné que YQL prend en charge xpath ?)
  • Google App Engine vous permet de déployer des applications Web sans vous soucier de la plupart des problèmes habituels d’environnement, de serveur et de configuration. C’est également un moyen d’insérer des mots à la mode dans votre conversation en déployant votre nouvelle application évolutive dans le cloud. FTW
    • Comment cela aide mon mini-projet: Je ne voulais pas assumer de prérequis comme avoir des serveurs à votre disposition, mais je n’ai pas non plus eu le temps de configurer quoi que ce soit à partir de zéro. App Engine est gratuit pour une utilisation à petite échelle, et je suis passé de l’absence de compte au déploiement de mon code en moins de 2 heures
  • Python est l’un des deux langages de programmation pris en charge par Google App Engine. L’autre étant Java. Je connais un peu Java d’il y a des années, alors que je ne connaissais même pas Python donne un sens sémantique à l’indentation avant de commencer mon projet
    • Comment cela aide mon mini-projet: J’avais besoin d’un type de langage de programmation pour me permettre de créer des boucles, d’afficher la sortie, etc. et je devais en choisir un que je (a) ne connaissais pas déjà et (b) pourrait être utilisé avec App Engine

Se lancer

Avant de commencer, permettez-moi de vous avertir de lire la clause de non-responsabilité à la fin de cet article : je construis un prototype / preuve de concept ici et vous ne devez absolument pas vous fier à mon code. À utiliser à vos risques et périls!

Ma “spécification” pour le projet était :

  • Récupérez les mentions d’un flux RSS Google Alerts (j’ai choisi de coder en dur ‘SEomoz’ [RSS link] dans ma preuve de concept)
  • Pour chaque mention, voyez s’il existe un lien vers une page sur https://moz.com
  • Générer une liste de mentions qui ne sont pas liées

Assez simple, non?

L’horloge tournant, j’ai commencé par télécharger les fichiers d’installation pour App Engine et Python tout en lisant sur YQL.

Le téléchargement de Python prenait un certain temps, j’ai donc passé la première demi-heure à créer les requêtes YQL dont j’avais besoin sur la console.

Pour saisir les alertes Google, j’ai utilisé :

sélectionnez * dans le flux où url=”http://www.google.com/alerts/feeds/02091889458087148316/10137124638087203861″

et pour chaque page de cette liste, je pourrais récupérer la liste des liens en utilisant :

sélectionnez * à partir de html où url=”” et xpath=”//a[starts-with(@href,’https://moz.com’)]”

Le xpath là-bas a probablement besoin d’un peu d’explication – je l’ai construit en utilisant une combinaison de la documentation xpath de base liée ci-dessus et du toujours impressionnant stackoverflow. Vous pouvez le considérer en trois sections :

  1. //a signifie sélectionner tous les éléments ‘a’ (ancre) (c’est-à-dire les liens)
  2. //un[@href] signifie sélectionner tous les attributs href de tous les liens
  3. //un[starts-with(@href,’https://moz.com’)] signifie sélectionner tous les attributs href de tous les liens commençant par https://moz.com

Au moment où j’ai réussi à résoudre ce problème, mes téléchargements étaient terminés et j’ai commencé à préparer mon environnement à l’aide du guide de démarrage rapide d’App Engine.

J’ai aussi eu une chance à peu près à ce moment-là. J’ai découvert qu’il existe une bibliothèque YQL pour Python. Sacré super batman ! J’ai pensé qu’il serait assez facile de construire quelque chose en Python pour interroger l’API YQL, mais je ne savais pas que ce serait aussi simple que yql.Public().execute(requête). Sucré!

Il m’a fallu un certain temps pour comprendre comment importer des bibliothèques tierces dans mon environnement App Engine (il s’avère que vous saisissez simplement le code source et incluez le dossier dans le dossier racine de votre application). Mon temps était compté à ce stade. j’étais sur au milieu de mes deux heures et je n’avais pas encore écrit une seule ligne de code.

Oh oh.


Écrire du code Python

Je ne suis pas la bonne personne pour vous apprendre à écrire du code Python. Surtout parce qu’environ 10 minutes avant la fin de mon défi, j’ai réalisé que je ne savais pas comment créer une instruction if. Mon approche de l’apprentissage de Python n’est pas à recommander ; mais il y a plein de bons tutoriels là-bas. J’aimerais vraiment pouvoir expliquer mon code ligne par ligne, mais honnêtement ? J’exposerais probablement juste mon horrible manque de connaissances.

[Want a link from SEOmoz? Understand Python? Write up an explanation for beginners, drop me a line and I’ll link to it here. For bonus points, you could show how to improve my code ]. En attendant, travailler sur le code doit être (comme disaient mes professeurs d’université) un exercice pour le lecteur intéressé. Mise à jour: Peter Coles a gentiment pris le temps de parcourir mon code (d’améliorer et) d’expliquer les choses – si cela vous intéresse, je vous suggère de lire son explication de mon code Python. Merci Pierre !

Tout ce que vous devez vraiment savoir, c’est qu’en 33 lignes de code (au moment de la rédaction), j’ai construit mon prototype de base. Vous pouvez voir le code résultant sur Google code.


Le résultat

Le temps presse, j’ai cliqué sur “déployer” et …..

mentionnermonitor

…. hein. C’était facile.

OK, donc j’ai des time-outs / erreurs de serveur de temps en temps et ce n’est vraiment qu’une preuve de concept pour le moment (voir ci-dessous) mais je pense toujours que cela justifiait mon tweet exactement deux heures après le le précédent:


Énormes mises en garde

Mon prototype n’est essentiellement qu’une preuve de concept. Parmi plein d’autres choses, notez qu’il n’a pas :

  • Toute gestion d’erreur
  • Beaucoup de tests
  • Toute documentation (y compris les commentaires)

Et qu’il a :

  • Variables codées en dur
  • Limitations massives même compte tenu du codage en dur (ne saisir que 10 résultats, par exemple)
  • Aucun moyen de l’automatiser ou de faire autre chose que de l’exécuter manuellement (bien qu’App Engine fournisse des moyens simples d’étendre cela)

Dans sa forme actuelle, il n’est pas vraiment utile à quoi que ce soit, mais j’espère qu’il deviendra bientôt intéressant. Si vous voulez en tirer quelque chose (ou les idées qu’il contient), j’aimerais en entendre parler (mais gardez à l’esprit qu’il s’agit vraiment de la définition d’un code non prêt pour la production, donc si vous fais utilisez-le, vous le faites entièrement à vos risques et périls !).

Je pense toujours que cela a été un exercice d’apprentissage utile pour moi et j’espère qu’il vous donnera matière à réflexion (malheureusement pas de la vraie nourriture comme le récent post de Rand).


Merci de partager vos idées

J’aimerais entendre vos réflexions sur de petits outils similaires qui nous aident tous à mieux faire notre travail. J’aimerais aussi voir quelqu’un prendre cela et le transformer en un outil plus entièrement fonctionnel (si vous le faites, faites-le moi savoir et vous obtiendrez probablement un lien d’ici !).



(Article traduit de moz.com)

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page
Index