• Aucun résultat trouvé

5.3.4.2 Programmer surtout pour scraper ou du Python pour la moisson

S'il y a une activité populaire chez les journalistes sachant programmer, c'est bien le web scraping. Ce qu'on peut traduire en français par « extraction de données », ou encore « moissonnage de données »56, consiste à recueillir automatiquement

et rapidement un volume important de données se trouvant sur plusieurs pages d'un même site web ou sur plusieurs sites. Les journalistes ont recours à cette technique lorsque copier et coller ces données serait beaucoup trop fastidieux.

Ils et elles le font majoritairement à l'aide du langage Python : « C'est le langage le mieux documenté », explique Oli- vier Bouchard (P03). Avec la communauté la plus grande, également : « Tout ce que tu peux imaginer faire en Python, dit- il, il y a quarante réponses très détaillées sur StackOverflow. »

Les journalistes qui veulent moissonner un site commencent toujours par en révéler le code HTML afin d'en com- prendre la structure. C'est ce que Philippe Gohier (R01) a fait lorsqu'il a voulu compiler des données sur le financement des candidats à la direction du Parti québécois, en 2014-2015. Il s'est rendu sur la section du site web du Directeur général des élections du Québec qui permet de faire des recherches sur les contributions versées aux entités politiques57.

Il n'est pas utile, ici, de refaire sa démarche d'un bout à l'autre, mais on peut s'intéresser à une partie seulement des informations qu'il a glanées pour comprendre de façon juste un petit peu plus détaillée comment le moissonnage fonc - tionne afin d'en saisir toute la complexité. Parmi les informations auxquelles le site du DGEQ donne accès, donc, se trouvent le nom du donateur, la municipalité où il vit et son code postal. Ces trois informations s'affichent dans une petite fenêtre surgissante (figure 4).

56 Le Lexique des nouvelles technologies de l'information traduit l'expression screen scraping par « grattage d'écran » (Mouzard, 2000 : 206), ce qui fait sourire. La Bibliothèque virtuelle de l'OQLF recommande, de son côté, la traduction « récupération de données » (Office québécois de la langue française, 2002 : en ligne), qui n'est cependant pas du tout usitée. Le Grand dictionnaire terminologique recommande plutôt l'emploi de « moissonnage » (Office québécois de la langue française, 2013 : en ligne) pour traduire l'expression web scraping.

57 Le site permet de faire des recherches sur les dons aux partis politiques, aux députés indépendants, aux candidats indépendants à des élections et aux candidats à des courses à la direction d'un parti. Il est accessible à l'URL suivant :

http://www.electionsquebec.qc.ca/francais/provincial/financement-et-depenses-electorales/recherche-sur-les-donateurs.php

Lorsqu'on examine le code HTML qui sous-tend cette fenêtre (figure 5), on constate que l'ensemble se trouve dans une balise div à l'intérieur de laquelle chacune des trois informations est incluse dans une balise p.

Pour automatiser la saisie des trois informations de cette fenêtre, Philippe Gohier (R01) a donc écrit dans son script trois lignes dans lesquelles on reconnaît un peu la structure du code HTML (le script au complet est accessible à l'annexe 9.2) : donor_name = donor_info.xpath('//div[@class="affinfo"]/p[1]/text()') [0].split(' : ')[1].encode('utf-8') donor_municipality = donor_info.xpath('//div[@class="affinfo"]/p[2]/text()') [0].split(' : ')[1].encode('utf-8') donor_postal_code = donor_info.xpath('//div[@class="affinfo"]/p[3]/text()') [0].split(' : ')[1]

La première ligne place le nom du donateur dans la variable donor_name en plusieurs étapes. Elle va d'abord repé- rer une balise div avec la classe affinfo, puis s'intéresser à la balise p portant le numéro 1, p[1] (en informatique, le premier élément d'un ensemble est toujours numéroté 0 [zéro]; dans ce cas-ci, la première balise p est vide, c'est la deuxième qui contient le nom du donateur et qui, donc, porte le numéro 1). La même ligne se poursuit avec l'instruction text() qui fait en sorte qu'elle capture le texte contenu par la balise (ici, on capturera « Nom : Cloutier, Alexandre »). Ensuite, l'instruction split sépare ce texte en deux parties de part et d'autre des deux-points et prend la partie numéro- tée [1], c'est-à-dire la deuxième, qui contient seulement le nom et prénom du donateur. Elle encode ensuite le tout avec la norme UTF-8 pour tenir compte des caractères accentués qu'on pourrait retrouver dans le nom des donateurs. Les deux lignes suivantes font un travail semblable pour la municipalité et le code postal.

Au final, cette récolte de données s'est traduite par un article relativement court présenté dans la version tablette du média où travaille le responsable en question (article reproduit à l'annexe 9.2, également). Il s'agit de journalisme informa- tique plus ou moins visible puisque, bien qu'on y trouve essentiellement des tableaux et une carte, il ne contient pas les infographies interactives qu'on associe généralement au « journalisme de données » et nulle part l'utilisation d'un script en Python n'est mentionnée.

Le responsable s'est donné tout ce mal car dans le passé, Élections Canada a déjà refusé de lui remettre une base de données sur les dons aux partis politiques. Il n'a pas demandé au DGEQ, dans ce cas-ci, mais s'attendait à un refus égale- ment. Le fait de ne pas avoir accès à une base de données dont certains éléments sont pourtant diffusés à la pièce sur le web est une autre des raisons pour lesquelles les journalistes peuvent recourir au moissonnage de données. C'est, selon certains auteurs, une question d'autonomie et de liberté : « If you can develop web scraping skills, écrit le journaliste Glen McGregor, no longer will you have to rely solely on freedom-of-information laws to get data. You take the data governments already put online and leapfrog over their clumsy interfaces to create your own copies » (2012 : 34). « À travers la mobilisation des technologies associées au traitement de données, les journalistes cherchent à gagner en liberté dans le rapport aux sources, institution- nelles notamment » (Parasie et Dagiral, 2013 : 61).

C'est ainsi que la pratique du moissonnage s'inscrit dans l'une des valeurs idéal-typiques du journalisme décrites par Deuze, à savoir que les journalistes sont au service du public et qu'il vont tout faire pour aller chercher l'information d'in- térêt public en tant que « ' newshounds ' » et « active collectors […] of information » (2005 : 447). C'est également ce qui fait l'at- trait du scraping chez ceux qui ne maîtrisent pas encore la programmation.

En fait, quand on demande aux journalistes qui souhaitent apprendre à programmer pourquoi ils veulent acquérir cette compétence, ils répondent principalement que c'est pour faire du moissonnage : « C'est pour extraire de l'informa- tion de sites web sans avoir à faire des demandes d'accès à l'information qui me prennent des mois », répond Valérie Ouellet (P09). Elle vise l'apprentissage du Python. « Essentiellement, c'est pour trouver l'information que moi je veux, l'organiser comme j'ai envie, et l'interpréter dans une base de données qui a du sens. »

Pierre-André Normandin (P16) souhaite, pour sa part, en apprendre plus sur le scraping afin de s'en servir en prévision des élections fédérales qui seront déclenchées quelques semaines plus tard :

C'est que ça pourrait accélérer de beaucoup mon travail. Il y a 338 circonscriptions cette année, et techni - quement il faudrait que j'aille les rentrer une par une.

— Qu'est-ce que tu veux aller chercher dans les circonscriptions?

— Le nom des candidats, par exemple. Au Québec il y en avait 125 à la dernière élection, c'était un bon travail!

— Pas au complet. Il y avait certains partis que ç'avait été facile, juste en faisant du copier-coller. Ça ren- trait très bien. Mais il y en a d'autres où le mode de présentation n'était vraiment pas convivial; c'était assez complexe.

Hugo Joncas (P04) dit qu'il serait prêt à apprendre à programmer justement « à condition que ce soit pour faire de la recherche, et non pour la présenter. […] Je me sens plus concerné par la portion extraction de l'information de cet uni - vers-là que par la partie visualisation. […] Trouver de l'information, c'est le travail des journalistes. »

Comme le moissonnage de données est devenu une activité courante, pas seulement chez les journalistes, différents outils en ligne sont apparus ces dernières années afin de le rendre possible sans qu'il soit nécessaire de programmer quoi que ce soit. L'un de ces outils, Import.io58, a été utilisé par différents journalistes, dont Julien Brault (P01) : « C'est fou! Je le configure, puis il travaille pour moi. Il va me sortir 5 000 lignes qui n'existaient même pas avant. » Stéphane Guidoin (G02) n'a toutefois pas été impressionné : « C'est supposé permettre de faire ça de manière plus générique, mais à chaque fois que j'ai essayé de l'utiliser, j'ai fini par développer mon propre script. […] U n scraper de base va se faire en trente lignes de script. Souvent, quand tu sais programmer, ça va être plus facile de développer le scraper toi-même que d'ap- prendre à utiliser un outil. » Malgré l'existence d'outils à première vue plus simples à utiliser, un langage de programma - tion semble donc demeurer utile pour faire un moissonnage plus complet ou personnalisé.

En outre, le moissonnage de données est devenu tellement courant que des journalistes s'interrogent sur les aspects éthiques de cette activité. La saisie automatique d'information sur un site web peut impliquer qu'un script s'y connecte des milliers de fois à la seconde. Ceci peut imposer une surcharge de travail au serveur qui héberge le site web et rendre ce dernier difficilement accessible pour des utilisateurs humains : « Tu peux faire ce qu'on appelle du threading en Python, raconte Philippe Gohier (R01). C'est un module qui te permet de séparer ton robot en plusieurs parties. Là, tu mitrailles vraiment le serveur. Je ne fais pas ce genre d'affaire-là. J'essaie d'être respectueux. Je veux pas mettre le service par terre! » Il explique aussi qu'il s'organise pour faire en sorte que son script fasse des pauses à intervalles régulier : « Je ne voudrais pas qu'ils ferment le serveur et que personne n'y ait accès juste à cause de moi. »

Roberto Rocha (P10), de son côté, se fait un point d'honneur d'inclure son nom et son adresse de courriel dans ses scripts pour que l'organisme auprès duquel il recueille de l'information puisse voir qui, au juste, se connecte de façon répétée à son serveur et puisse le contacter en cas de problème. Il est même possible d'ajouter, dans ces espèces d'in- signes d'identité électroniques, des messages adressés aux responsables des serveurs web : le média pour lequel on tra- vaille, les raisons pour lesquelles on procède à l'extraction de données, etc. C'est là une façon informatique d'appliquer le principe déontologique selon lequel « les journalistes exercent leurs fonctions à visage découvert en s'identifiant comme journalistes » (Conseil de presse du Québec, 2015 : article 24).