En écrivant des araignées, j'ai remarqué que de nombreux sites renverraient une erreur 403 si je les consultais à partir de bibliothèques logicielles HTTP populaires, à moins que je ne remplace manuellement l'en-tête par défaut User-Agent
utilisé par la bibliothèque.
Par exemple, le magazine The Economist bloque mes demandes si j’utilise les en-têtes d’agent utilisateur par défaut de n’importe quelle bibliothèque HTTP Python:
$ curl http://www.economist.com/ -A python-requests/2.9.1 --write-out "%{http_code}\n" --silent --output /dev/null
403
$ curl http://www.economist.com/ -A python-Urllib/2.7 --write-out "%{http_code}\n" --silent --output /dev/null
403
Mais si je simule un agent utilisateur de navigateur, un agent utilisateur absurde ou un agent utilisateur vide, ils acceptent volontiers ma demande:
$ curl http://www.economist.com/ -A "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36" --write-out "%{http_code}\n" --silent --output /dev/null
200
$ curl http://www.economist.com/ -A '' --write-out "%{http_code}\n" --silent --output /dev/null
200
$ curl http://www.economist.com/ -A banana --write-out "%{http_code}\n" --silent --output /dev/null
200
The Economist est le le plus grand site que j'ai rencontré avec ce comportement, mais certainement pas le seul - ce comportement semble être courant. Pourquoi? A quoi sert ce blocage du point de vue du site? S'agit-il d'une mesure de sécurité (peu judicieuse et inefficace)? Une tentative pour obtenir des agents utilisateurs plus significatifs de bots? (Mais dans quel but?) Ou est-ce que quelque chose d'autre motive ces filtres?
Cela est dû au nombre de personnes qui incorporent ces bibliothèques HTTP dans leur propre logiciel dans le but de supprimer du contenu provenant d'autres sites, ce qui est souvent fait dans le but de violer les droits d'auteur. Les robots d'exploration bien conçus qui sont légitimes et conçus pour un but spécifique (comme les robots d'archivage et les robots de recherche) ont leurs propres chaînes d'agent utilisateur personnalisées pour les identifier de manière unique. Sur la base de ce constat, nombreux sont ceux qui appliquent ce type de restrictions à leurs propres sites, à savoir que les connexions utilisant la chaîne d'agent d'utilisateur par défaut à partir de ces bibliothèques n'ont pas été établies dans un but légitime et que faire en sorte que le développeur contacte le webmaster.