Fork me on GitHub

Outils pour utilisateurs

Outils du site


platforms:contribute:botscraper

Comment écrire un scraper de bots

Le rôle du scraper est de récupérer une ou plusieurs listes d'adresses correspondant à des crawlers, ces robots qui parcourent le web à des fins diverses, et engendrent des consultations qui ne sont pas l'oeuvre d'un humain.

Emplacement et format des listes

Les listes se trouvent dans le dossier exclusions d'ezPAARSE, qui correspond à un dépôt git indépendant. Elles sont séparées dans plusieurs fichiers répondant à la nomenclature robots.xxxxx.txt. Ces derniers contiennent une adresse par ligne, et peuvent contenir des lignes vides ainsi que des commentaires (à placer après un #).

Écriture d'un scraper

Les scrapers sont des fichiers javascript situés dans le dossier scrapers. Dans le cas où les listes à récupérer correspondent au format explicité ci-dessus, la librairie lib/scraper.js prend en charge la grande majorité du code et permet d'écrire un scraper en quelques minutes.

Exemple de scraper

#!/usr/bin/env node
'use strict';
 
var scraper = require('./lib/scraper.js');
 
function scrape(callback) {
  scraper()
  // Récupère live_webcrawlers.txt et le place dans robots.myip_live.txt
  .download('myip_live', 'http://myip.ms/files/bots/live_webcrawlers.txt')
  // Récupère full_blacklist_database.txt et le place dans robots.myip_blacklist.txt
  .download('myip_blacklist', 'http://myip.ms/files/blacklist/general/full_blacklist_database.txt')
  .done(callback);
}
 
if (module.parent) {
  // Si le scraper est utilisé par un module node, on exporte la fonction
  module.exports = scrape;
} else {
  // Si le scraper est exécuté directement, on appelle la fonction
  scrape(function (err) {
    process.exit(err ? 1 : 0);
  });
}
platforms/contribute/botscraper.txt · Dernière modification: 2015/03/23 10:47 par yan