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.









