Derniers passages de robots au 14/12/17

nom accès à 
bingbotcrawler1 page 
bingbotcrawler1 page 
Yahoo! Slurpcrawler1 page 
  Faked UA string  (utilisé comme zombie)  hacking attempt1 page 
Googlebotcrawler1 page 
Googlebotcrawler1 page 
  Faked UA string  (utilisé comme zombie)  hacking attempt1 page 
bingbotcrawler1 page 
Googlebotcrawler1 page 
Yahoo! Slurpcrawler1 page 
bingbotcrawler1 page 
Googlebotcrawler1 page 
  IP 62.210.215.117  log spam1 page 
bingbotcrawler1 page 
SemrushBot 10 pages en  2' 33'' 
  Faked UA string  (utilisé comme zombie)  hacking attempt2 pages 
  Faked UA string  (utilisé comme zombie)  hacking attempt2 pages en  15'' 
  Faked UA string  (utilisé comme zombie)  hacking attempt1 page 
bingbotcrawler1 page 
CCBotcrawler65 pages en  7' 51'' 
671 702 visites de robots identifiés
environ 102 par jour en 2014
42 aujourd'hui à 20:10 (+93 visiteurs)
zombies : 6 visites / 64 requêtes - spammeurs : 2 visites

Comment interpréter ces statistiques ?

Elles ont été obtenues à partir de $_SERVER["HTTP_USER_AGENT"] -$HTTP_USER_AGENT avec PHP 3- et gethostbyaddr().
Elles sont faussées par le filtre parfois mis en place par l'hébergeur (free.fr).
Dans les statistiques du site, les robots ne sont pas considérés comme des visiteurs, le navigateur et le pays d'origine qu'ils annoncent sont ignorés. Il est donc facile de relever l'activité de ceux qui ne sont pas refoulés.
S'ils consultent plusieurs pages, ils ne sont pris en compte qu'une fois (sauf s'ils ne reviennent qu'après plus de 10 minutes - plus de 30 minutes pour Google Desktop).
Cette liste est indicative car elle suppose une connexion parfaite avec MySQL, ce qui n'est pas le cas pour ce site. Mais l'hébergement est gratuit, alors ...

Détection du robot

Cette routine est commentée dans la page sur les pièges à robots.
Il est nécessaire de stocker les identificateurs des autres visiteurs pour compléter la liste des robots qui fréquentent le site et celle de leurs "User Agents".

La base de données

Voici la structure de la table robots que j'utilise :
#
# Structure de la table `robots`
#
CREATE TABLE `robots` (
  `heureacces` int(10) unsigned NOT NULL default '0',
  `heurearrivee` int(10) unsigned NOT NULL default '0',
  `nom` varchar(64) NOT NULL default '',
  `dernierepage` varchar(30) NOT NULL default '',
  `nombrepages` mediumint(8) unsigned NOT NULL default '0',
  KEY `heureacces` (`heureacces`),
  KEY `heurearrivee` (`heurearrivee`),
  KEY `nom` (`nom`),
  KEY `nombrepages` (`nombrepages`)
) TYPE=MyISAM;

En fonction de la place occupée par chaque champ chez votre prestataire, choisissez double ou datetime pour les heures, double ou int pour nombrepages, si nécessaire augmentez le nombre de caractères pour dernierepage.

Mise à jour de la base de données

Affichage des données

Nous disposons donc du nom du robot, de l'heure d'arrivée, de l'heure de la dernière page lue et du nombre de pages lues.
S'il n'y a qu'une page et des heures différentes, c'est que la page a été actualisée.
J'ai choisi d'afficher le nombre de pages lues et le temps passé à les lire.


Voilà pour le principe, à vous de voir ce que vous voulez afficher ou calculer.

Un script du même type est maintenant disponible ici

hautHaut de la page

Avec javascript

W3C XHTML 1.0
W3C CSS