Les règles d’or du web scraping
Partie 2

Cet article a également été publié sur Projet-J.

Le web scraping est une technique utilisée pour extraire des informations qui se trouvent sur Internet. Comme je l’explique dans la partie 1 de cet article, l’extraction de données est utilisée par de nombreuses entreprises.

C’est aussi une technique très intéressante pour les journalistes qui savent coder puisque de plus en plus d’institutions gouvernementales publient leurs données directement sur leur site web.

À l’aide de web scrapers, souvent affectueusement surnommés « robots », il est possible de récupérer ces données et de les utiliser pour faire du reportage. C’est notamment ce que j’ai fait pour comparer le prix de l’alcool au Québec et en Ontario.

Mon confrère de Radio-Canada Florent Daudens a également utilisé cette technique pour comparer les prix des loyers proposés sur Kijiji, en fonction des quartiers, à Montréal.

Mais quelles sont les règles éthiques que doivent respecter les journalistes qui s’adonnent à cette pratique?

Ces règles sont d’autant plus importantes que pour les non-initiés, le web scraping ressemble à s’y méprendre à du piratage informatique, du hacking.

Malheureusement, ni le Code de déontologie de la Fédération professionnel des journalistes, ni les principes éthiques de l’Association canadienne des journalistes ne donnent d’indications claires à ce sujet.

Alors je suis parti en quête de réponses, en posant la question à plusieurs collègues journalistes de données!

 

#I Infos publiques ou non?

 

Un exemple de données qu'on peut trouver sur les sites web du gouvernement fédéral.

Un exemple de données qu’on peut trouver sur les sites web du gouvernement fédéral.

Premier consensus des journalistes de données: si une institution diffuse des informations sur le web, ces informations deviennent automatiquement publiques.

Cédric Sam travaille pour le South China Morning Post, à Hong Kong. « Je fais du web scraping quasiment tous les jours», indique celui qui a également travaillé pour La Presse et Radio-Canada.

À ses yeux, les robots ont les mêmes droits que les humains qui les conçoivent. « Que ça soit un humain qui recueille les informations manuellement ou bien un humain qui code un programme pour le faire, c’est la même chose. C’est comme si tu engageais 1000 personnes pour travailler à ta place. C’est le même résultat. »

Toutefois, les sites web gouvernementaux hébergent aussi toutes sortes d’informations d’ordre personnel sur les citoyens. « Certains choses sont cachées parce qu’elles violeraient sinon le droit à la vie privée », rappelle William Wolfe-Wylie, développeur pour CBC et professeur de journalisme au Centennial College et à la Munk School de la University of Toronto.

C’est là la grande limite entre le web scraping et le piratage: le respect de la loi.

Les journalistes ne doivent pas forcer l’accès à certaines données. Si un internaute lambda ne peut les consulter directement, le journaliste ne devrait pas y toucher (à moins d’avoir une autorisation spéciale). « Il est très important que les journalistes reconnaissent les barrières légales, tout à fait légitimes, à ces informations et qu’ils les respectent », ajoute William Wolfe-Wylie.

Roberto Rocha, jusqu’à tout récemment journaliste de données pour Montreal Gazette, souligne aussi que les journalistes devraient toujours lire les Termes de services et les Conditions d’utilisation des sites web pour éviter toute entrave à la loi.

Autre élément important: vérifier le fichier robots.txt, qui se trouve à la racine du répertoire, pour voir ce qui est permis ou non. Voici par exemple celui de la Banque Royale du Canada: http://www.rbcbanqueroyale.com/robots.txt

robots RBC

 

 

#II S’identifier ou pas?

Quand vous êtes journaliste et que vous souhaitez poser des questions à quelqu’un, la première chose à faire est de se présenter en bonne et due forme.

Mais que faire quand c’est un robot qui interroge un serveur ou une base de données? Est-ce que la même règle s’applique?

Pour Glen McGregor, journaliste sur la colline parlementaire pour le Ottawa Citizen, la réponse est oui. « Dans les http headers [NDLR: paramètres qui permettent d’identifier les internautes naviguant sur un site web], j’indique mon nom, mon numéro de téléphone et un message qui dit: « Je suis un journaliste en train d’extraire des informations de cette page. Si vous avez des inquiétudes ou un problème, appelez-moi immédiatement. » Comme ça, si l’administrateur du site web voit tout d’un coup un grand nombre de requêtes sur son site, prend peur et pense qu’il se fait attaquer, il peut vérifier qui est en train de visiter son site en si grand nombre. Il verra alors mon message et mon numéro. Je pense que c’est une importante règle éthique. »

Jean-Hugues Roy, professeur en journalisme à l’UQAM et lui-même adepte de la technique, est d’accord sur toute la ligne.

Mais tous ne sont pas du même avis… Philippe Gohier, rédacteur en chef web de l’Actualité, fait tout pour éviter d’être identifié!

« Des fois, quand je sais que je l’ai fait beaucoup, je passe par des proxys, indique-t-il. Donc j’ai une rotation de mes adresses IP, puis je change mes headers aussi, pour faire apparaître mon script comme si c’était un fureteur web. J’essaye de respecter les règles, mais j’essaye aussi de me rendre aussi peu détectable que possible. »

 

 

Ne pas s’identifier comme journaliste lorsqu’on extraie des données pourrait se comparer, en quelque sorte, à faire des entrevues en caméra cachée. Le Code de déontologie de la FPJQ donne certaines directives à ce sujet:

4. La cueillette de l’information
4 a) Procédés clandestins

– Il arrive cependant des cas où les journalistes sont justifiés d’utiliser des procédés clandestins pour obtenir l’information qu’ils recherchent: fausse identité, micros et caméras cachés, imprécisions sur les intentions du reportage, filatures, infiltrations…

– Le recours à de tels moyens doit toujours rester exceptionnel. Les journalistes les emploieront lorsque:
– l’information recherchée est d’un intérêt public certain, par exemple dans les cas où il   s’agit de mettre à jour des actions socialement répréhensibles;
– l’information ne peut vraisemblablement pas être obtenue ou vérifiée par d’autres moyens, ou bien ceux-ci ont déjà été utilisés sans succès;
– les gains pour le public dépassent les inconvénients qui peuvent être causés à des individus.

Le public sera informé du recours à ces moyens.

En s’inspirant de cet article, il semblerait donc que la bonne pratique soit de se présenter dans son code même si, dans le fond, c’est un robot qui fait tout le travail.

En revanche, si on craint que l’institution visée ne modifie ou ne retire les données disponibles lorsqu’un journaliste tente de mettre la main dessus, on devrait se faire plus discret.

Et pour ceux qui craignent de se faire bloquer s’ils s’identifient, sachez que de changer son adresse IP n’est pas si compliquée que ça!

Pour certains journalistes, la bonne pratique serait aussi de demander à l’institution visée la base de données voulue, avant de scraper leur site web. Selon eux, ce n’est qu’en cas de refus que l’extraction devient alors une option.

Par ailleurs, si l’institution ou l’organisme vous répond rapidement et vous donne directement les données, cette stratégie peut vous faire gagner un temps précieux.

 

#III Révéler son code ou non?

La transparence est un autre aspect très important du métier de journaliste. C’est encore une fois un pré-requis pour obtenir la confiance du public.

 

Extrait du Code de déontologie de la FPJQ

Extrait du Code de déontologie de la FPJQ

 

La grande majorité des journalistes de données publient les informations qu’ils ont récoltées et utilisées pour faire leur reportage. Cet acte de transparence prouve qu’ils se sont basés sur des informations qui existent et qui sont vérifiables. Mais qu’en est-il de leur code?

Un erreur dans un script de web scraping peut complètement fausser les données obtenues. Alors est-ce que le code devrait lui aussi être publié?

À titre de comparaison, pour le mouvement des logiciels ouverts, révéler son code est une condition sine qua non. La mission première est de permettre à d’autres d’améliorer le programme, mais aussi de donner confiance aux utilisateurs qui savent alors exactement ce que fait le logiciel, dans les moindres détails.

Cependant, pour les journalistes codeurs, révéler ou non son code est une décision délicate.

« On est quand même des business, explique Cédric Sam, qui travaille pour le South China Morning Post, à Honk Kong. Je pense que si tu as un avantage compétitif et que tu peux continuer à sortir des histoires avec ça, tu devrais le garder pour toi. Tu ne peux pas tout révéler tout le temps. »

Pour Roberto Rocha, jusqu’à tout récemment journaliste de données avec Montreal Gazette, le code des scripts n’a pas à être publié avec les reportages.

 

Roberto Rocha a toutefois un compte GitHub sur lequel il publie certains de ses scripts, tout comme le font aussi Chad SkeltonJean-Hugues Roy et Philippe Gohier.

« Je suis vraiment de l’avis que la marée haute lève tous les bateaux, indique Philippe Gohier. Plus on a un partage de scripts et de technologie, plus ça va aider tout le monde. Je ne fais rien que quelqu’un qui y met un peu d’efforts ne serait pas capable de faire. Je ne suis pas en train de refaire le monde. »

Jean-Hugues Roy abonde dans le même sens.

Toutefois, le professeur souligne qu’il existe malgré tout des exceptions. Jean-Hugues Roy travaille depuis plusieurs semaines sur un logiciel qui extrait des informations publiées sur le site web de SEDAR, où l’on retrouve les documents des différentes compagnies canadiennes cotées en bourse.

« J’ai tendance à rendre mon code public. Mais celui-là, je ne sais pas. C’est compliqué. J’ai mis beaucoup de temps là-dessus. Ça a été assez long à concevoir. »

Glen McGregor, pour sa part, ne publie pas ses scripts mais les envoie à ceux qui lui demandent.

Alors publier ou ne pas publier son code?

Quand un journaliste a une source, il va tout faire pour la protéger. D’une part parce que cette source peut ainsi avoir confiance en lui et lui donner des informations privilégiées, et d’autre part parce que le journaliste veut garder sa source pour lui!

Alors, au final, un web scraper, n’est-ce pas une source mais version robot?

Est-ce qu’un jour les robots des journalistes se feront breveter?

Qui sait, peut-être qu’un jour un journaliste refusera de révéler son code tout comme Daniel Leblanc avait refusé de révéler l’identité de sa source « Ma Chouette ».

Après tout, jour après jour, les robots semblent de plus en plus humain!

PS: Respecter les infrastructures web est bien évidemment une autre règle d’or du web scraping. Comme c’est un détail technique plus qu’une règle éthique, je ne l’ai pas incluse ici. Mais espacez toujours vos requêtes de quelques secondes minimum pour ne pas surcharger les serveurs!

 

2 commentaires sur “Les règles d’or du web scraping
Partie 2

  1. Rétrolien : Élections 2015: palmarès du «scraping» | Jean-Hugues Roy

  2. Jean-Pascal

    En France, il me semble que la CNIL (Autorité française de contrôle en matière de protection des données personnelles) est très vigilante sur le fait de constituer une base de données sur des personnes. Toute base de données devrait être déclarée. De plus, il faut faire particulièrement attention au recoupement de données. Le recoupement de données permet par exemple de mettre un nom sur des adresses IP ou des informations de géolocalisation et ensuite de recouper ces noms avec des informations obtenues de twitter, facebook, etc. En ce sens, le web scraping permet de constituer une base de données liberticide et inacceptable au yeux de la CNIL.
    Avez vous réfléchi à ce point ?

    Répondre

Laisser un commentaire

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