Technique

J’ai récupéré pour vous +300.000 domaines inscrits sur DMOZ !

0

Le célèbre annuaire DMOZ va fermer le 14 mars 2017, c’est une page du référencement qui se tourne et surtout un gros spot à SEO. Alors avant la fermeture de celui il serait dommage de ne pas récupérer la liste des domaines référencés dessus et de se faire une petite liste de domaines expirés. Je vous ai donc récupéré les 305384 domaines uniques, 28k .fr, 111k .com, 16k .net, 21k .org je vous lâche la liste en fin d’article.

dmoz-rip

Voici donc le prétexte pour parler de scrap, une de mes spécialités, une technique qui permet de récupérer de la data sur les sites et de monter des bases pour exploiter les données sur d’autres. Il est également possible de cloner un site ou de récupérer une version dans la wayback machine, nous y reviendrons plus tard avec le sujet des domaines expirés.

WGET !

La plus simple manière de récupérer le code source d’une page c’est d’ouvrir votre console et de faire un wget d’une URL. La fonction va télécharger la page et vous voilà en possession de la page cible. C’est bien beau pour une page, mais pour récupérer de la donnée sur un site entier c’est pas suffisant, le but recherché n’est pas d’y passer 6 mois !

Il existe des outils comme scrapy, qui propose une version classique à installer sur votre machine, ainsi qu’une version cloud qui permet de faire tourner des workers et d’éteindre votre machine et de profiter de la connexion des serveurs. Le CM2 c’est cool mais il faut grandir !

Node.js c’est la vie !

Pour récupérer des données très ciblées et les exploiter correctement, il n’y a pas de solution miracle il faut mettre les mains dans le code et faire son système. Certains vont me dire Python c’est mieux pour faire du réseau, Ruby c’est bien aussi ou encore du GO, certes, mais je vous conseille de n’utiliser du Node.js rien d’autre.

Alors pourquoi ? Car c’est bien plus facile à développer en Node, c’est relativement bas niveau donc au niveau des performances c’est canon et surtout vous allez retrouver une très grande liste de module déjà développé.

Par exemple le célèbre PhantomJS un webkit qui va se comporter comme un navigateur en chargeant le JS, vous allez pouvez par exemple récupérer les box de vente flash sur Amazon, ce qui n’est pas possible avec un simple WGET ou avec le mode REQUEST de base en Node.

L’étape ultime est d’intégrer Apache Spark et de l’Hadoop, pour avoir une machine de guerre, mais uniquement avec Node vous avez déjà énormément de possibilités.

Contraintes

Récupérer de la data c’est chouette et légal, cela le devient beaucoup moins quand vous allez réutiliser les informations sur vos sites. Mais pour une bonne partie des informations, il va être hyper compliqué de remonter à la source si vous faites bien le mélange. Ne récupérez pas les images, ni les contenus propre au site, dans le cadre par exemple d’un site de foot, récupérer les informations d’un joueur ou d’un club ça passe, par contre les images c’est totalement grillé ainsi que les commentaires des rédacteurs sur ce même joueur.

La contrainte la plus compliquée à gérer est le fait que certains éditeurs essayent de vous bloquer, il faut dire que certain domine le sujet, je pense par exemple à Similar Web qui au bout d’un certain nombre de requêtes va vous retourner des données fictives, le truc à rendre fou un mec qui cherche à scrapper vos données.

A contrario il y a les mecs qui essayent, mais qui ne sont pas encore au top, je pense particulièrement au site PriceMinister qui bloque également les requêtes massives. Mais qui certainement pour un souci technique, élimine cette contrainte entre 19h et 22h, globalement c’est porte ouverte.

Les IPs et proxys

Même en mode fantôme vous allez pouvoir vous faire restreindre (sauf sur PriceMinister, bisous aux sysadmin) simplement avec votre IP, et là ça devient plus compliqué, mais pas impossible.

Il faut trouver des IPs ou des proxys qui dépotent, j’aime bien Proxymesh, qui permet d’avoir une rotation des IPs plusieurs fois par jour, mais complètement cramé quand vous voulez scrapper Google.

Il est possible de louer des IP dédiés, mais ça coute un bras, donc le plus simple c’est de prendre un serveur dédié chez OVH et de lui coller 256 IPs, ça coute un peu d’argent 50 à 90€ par mois + 500€ de setup mais vous pouvez démarrer avec un VPS et avoir 17 IPs pour 10€ par mois et 30€ de setup.

Voilà le fichier contenant les domaines : urls.csv.zip

Laisser un commentaire

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