De la bonne gestion des proxys en développement SEO

Il y a quelques mois, j’ai commencé le développement de plusieurs outils SEO.
Qui dit développement SEO, dit gestion de proxys.

Voici mon retour d’expérience.

Le cas ScrapeBox

Imaginons une liste de 50 proxys avec 100 sites à analyser.

Scrapebox va alors allouer les 50 proxys aux 50 premiers sites, puis va refaire une boucle avec les 50 proxys et les autres 50 sites.

… Avec des proxys gratuits

Si le proxy numéro 25 est défectueux, il ne donnera pas l’information au site numéro 25 et il y a très peu de chances pour qu’il l’a donne au site 75. Je devrais donc relancer l’analyse une deuxième fois, en espérant que les deux sites tombes sur un proxy valide.

Si ce n’est pas le cas, je devrais relancer l’analyse encore et encore, jusqu’à avoir la bonne information.

… Avec des proxys payants

Vous obtiendrez très probablement l’information puisque vous avez payés pour le service.

Cependant, il arrive que même des proxys payants ne réagissent pas ou se fassent bloquer par Google (ou autre). Dans ces cas là, vous retomberez dans la situation des proxys gratuits.

Ce que vous apporterait une meilleure gestion des proxys

Avec une meilleure gestion des proxys, ScrapeBox pourrait vous éviter d’avoir des proxys bannis, mieux, il pourrait accélérer les traitements en prenant en compte le temps de réponse des proxys ainsi que l’utilisation qu’il en fait.

 

Concrètement

Voici mes conseils pour bien gérer vos proxys dans vos applications SEO.

Première étape : stocker les proxys

Il est très important de stocker les proxys quelque part, puisque vous aurez besoin de noter les informations suivantes :

  • Date et heure de la dernière utilisation
  • Date et heure de la dernière erreur mineure (timeout, banissement)
  • Temps de réponse pour obtenir le résultat
  • Nombre de fois où le proxy a rencontré un problème majeur (inexistant, interdit)

Petit plus :

  • Type d’utilisation (Google, Bing, Yahoo)

Voici les cinq éléments qui vous permettront de sélectionner les meilleurs proxys dans vos applications.

Notez bien que le temps de réponse correspond, non pas au « ping » du proxy, mais au temps qu’il a mis à vous fournir la réponse complète de votre requête.

Le type utilisation permet d’obtenir rapidement un proxy qui a fonctionné pour un outil spécifique.

Avec tous ces paramètres, je vous conseille de faire votre stockage de proxys dans une base de données, ainsi vous pourrez sélectionner plus rapidement ce dont vous avez besoin grâce à une requête

 

Deuxième étape : Sélectionner les bons proxys

Voici la requête en langage humain pour sélectionner les bons proxys :

Donne moi tous les proxys qui n’ont pas été utilisés depuis 15 secondes et tri les par ordre croissant d’erreurs majeures, d’erreurs mineures et de rapidité.

Si vous avez pris en compte le « type d’utilisation » il vous faudra faire 2 requêtes, une pour le type souhaité et l’autre pour tous les types.

 

Troisième étape : Gérer vos proxys mieux que ScrapeBox

Vous avez désormais une liste de bons proxys, il va maintenant falloir les noter !

Pour cela il suffira de remplir les champs que nous avons préparés dans les points de la première étape.

D’abord, quel code HTTP avez-vous eu en retour ?

  • 404 ou 503 ? c’est une erreur majeure
  • 302 ? vous avez été banni, c’est erreur temporaire, donc mineure

Ensuite, testez le résultat retourné, exemple :

  • Vous interrogez une page de Google, vous devriez avoir au minimum 10 résultats. Si ce n’est pas le cas, inscrivez une erreur mineure sur le proxy actuel et relancez votre demande.

Si tout c’est bien passé, vous pouvez inscrire la date actuelle dans « Date et heure de la dernière utilisation » et le temps de réponse grâce à un chronometre que vous aurez lancé avant la demande au proxy.

Évidemment, si vous avez implémenté le type d’utilisation des proxys, inscrivez l’utilisation que vous venez de faire avec le proxy qui a fonctionné.

Grâce à ces bases, vous gérerez mieux vos proxys que ScrapeBox 😉

 

Pour aller plus loin

Je vous ai décrit les aspects les plus importants de cette gestion de proxys de manière théorique.

Pour les développemeurs avancés, vous pourrez aussi réfléchir au fait de nettoyer automatiquement les proxys qui n’ont pas servis depuis un mois ou encore l’intégration / le test de nouveaux proxys sans altérer les performances des réponses.

Si l’article vous a plus, faites le moi savoir et dans le prochain je vous donnerai la définition de la classe que vous pourrez implémenter directement dans n’importe quel langage de programmation.

A propos Xavier BOËT

Ingénieur en architecture logiciel, je suis devenu entrepreneur dans le référencement à travers Force-Référencement. Aujourd'hui j'aide nos clients à être plus visible dans les moteurs de recherche tout en continuant à développer des outils pour le référencement via Stateo
Ce contenu a été publié dans Développement, Techniques avancées. Vous pouvez le mettre en favoris avec ce permalien.

3 réponses à De la bonne gestion des proxys en développement SEO

  1. 512banque dit :

    « Vous interrogez une page de Google, vous devriez avoir au minimum 10 résultats. Si ce n’est pas le cas, inscrivez une erreur mineure sur le proxy actuel et relancez votre demande. »
    Exception : le cas des demandes de retrait DMCA (chilling effect). Là tu peux avoir moins de 10 résultats par page, je pense donc que cette vérification n’a pas lieu d’être (d’ailleurs quel est le but ?).

    Sinon très bon article, j’ai mis un temps fou pour retomber dessus, parce que j’écrivais « proxies » et tu écris « proxys » 😉

  2. Xavier BOËT dit :

    Salut Kevin,

    A l’époque de cet article, je m’entêtais à vouloir utiliser une liste de proxys gratuits mis à jour automatiquement grâce à un scrape de flux RSS, mais je n’avais pas encore gouté aux proxys dédiés payants.

    Au final, les conseils ci-dessus sont utiles uniquement si l’on doit faire un grand nombre de requêtes toute la journée. Si l’on a que quelques interrogations à faire, une dizaine de proxys payants sera largement suffisant. Il faudra juste implémenter la condition « tant que tu n’as pas le bon résultat, prend un autre proxy », même si on a 98% de chances d’obtenir ce que l’on veut avec ce type de proxy.

    La condition « vous devriez avoir au minimum 10 résultats » vient du fait que certains proxys gratuits ont la malice de ne pas fournir des pages web complétes. Donc tu as raison, ce n’est pas le nombre de résultats qu’il faut tester mais plutôt la fermeture de la balise « body ».

    À bientôt

    PS : « proxies » ou « proxys », c’était la grande question avec mon associé. On a fini par décidé « proxies » pour l’anglais et « proxys » pour le français, même si à la base c’est un mot anglais 😉

  3. Mickael dit :

    Ca me rassure de voir quelqu’un qui a eu les mêmes problématiques que moi avec Scrapebox ! J’avoue ne jamais avoir trop réussi à m’en servir, le pire c’est que, même avec des proxies valides et de bons grains de sel, il faut réussir à trouver le bon paramétrage pour ne pas qu’il s’arrête à moins de 200K Url… Le problème était peut-être entre la chaise et le bureau comme on dit souvent, mais j’ai laché l’affaire…

    Au final j’ai opté, comme beaucoup d’autres SEO, pour une solution similaire à celle que tu as présentée pour ce qui est de la gestion des proxies (il existe même des tools tout prêts mais le DIY c’est quand même beaucoup plus sympa). Moi j’aime bien stocké le type (anonymous,high anonymous,etc.) et la géoloc. Ca peut toujours servir lorsqu’on s’en sert pour autre chose que du scrap Google. Login / Mdp aussi, comme ça tu ne fais qu’un seul tool pour la gestion de tous les proxies…

    Sinon pour ce qui est de l’orthographe de « proxy » au pluriel, j’ai jeté un oeil, j’aime bien connaître les réponses à ce genre de questions… 🙂 Lorsqu’un angliscisme n’est pas assimilé à la langue française il est invariable ou peut-être mis au pluriel dans sa forme plurielle d’origine. Proxy n’est je pense pas intégré au dictionnaire de la langue française donc ce serait bien « proxies » au pluriel.

Laisser un commentaire

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