JulieCantineau / covid-19

Dashboard sur le coronavirus
MIT License
1 stars 0 forks source link

Webscrapping #2

Closed GuyliannEngels closed 4 years ago

GuyliannEngels commented 4 years ago

Vu que la Belgique ne nous donne rien d'intéressant comme données, je vous propose d'attaquer la page de wikipedia avec des outils de webscrapping

un peu de doc sur le sujet

https://thinkr.fr/rvest/

Il faut encore nettoyer le tableau mais je n'ai pas le temps pour le moment ...

damien-dumont commented 4 years ago

Les éditeurs wikipédia n'ont pas chomé, il y a déjà un article pour l'épidémie Covid-19 en Belgique.

https://en.wikipedia.org/wiki/2020_coronavirus_outbreak_in_Belgium#Statistics

La source n'est pas forcément intéressante, mais le graphique est fait dans wikipédia lui-même. Si on clique sur edit, on peut voir qu'il y a derrière un tableau de donnée contenant le nombre de malades au jour le jour

|y1=1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 8, 14, 23, 50,109,

Je lis un peu rvest, il doit y avoir moyen de récupérer ce tableau facilement. L'avantage, c'est que c'est facile à automatiser: si le tableau est mis à jour, il suffit de le ré-importer. Par contre, ça va être plus compliqué de localiser les malades. A ce moment là, je pense qu'il va falloir les ajouter à la main tant qu'une base de donnée ne sera pas disponnible sur internet. Au moment ou j'écrit, wikipédia donne une localisation

On 6 March, 59 new cases were reported bringing the total to 109 (65 in Flanders, 12 in Brussels and 31 in Wallonia).

mais impossible de retrouver la source (je pense que c'est l'article du Standaard, mais il faut un abonnement pour le lire en entier, et je n'ai qu'une connaissance fort superficielle du néérlandais).

GuyliannEngels commented 4 years ago

Si tu regarde le fichier R dataset.R, tu as un tableau de l'évolution journalière en belgique et un tableau sur les zones géographiques

Il faut juste un peu remanier les données

damien-dumont commented 4 years ago

Autant pour moi, par habitude j'utilise le wikipédia anglais qui est généralement plus complet. Je vais faire du remaniement.

damien-dumont commented 4 years ago

J'ai remanié entièrement le jeu de donnée sur la répartition géographiques des malades. Plusieurs choses à noter

  1. Pour une raison quelconque, le chainage de commande produit souvent des erreurs, donc j'ai refait une assignation à chaque fois. Soit, ça change peu au final.
  2. Le tableau obtenu a été enregistré sous formes csv dans un nouveau dossier data
  3. J'ai viré la colonne ville. A moins que la maladie ne prenne des proportions plus importantes, inutile de s'en servir maintenant. Il y a presque 600 communes en Belgique, il est très peu probable que même un tiers soit touchées. Il faudra s'adapter selon l'évolution de l'épidémie.
  4. Il faut faire attention que parfois, la province n'est pas identifiée.
  5. Dans le cas de Bruxelles, la province est remplacée par "Total"

Dans le cas du tableau de l'évolution quotidienne

  1. Contrairement au tableau géographique, celui là n'est pas fait directement sur la page wikipédia. Dans le code de la page il est juste écrit {{Coronavirus/Graph/Belgique}}. Il va donc falloir que je retrouve le graphique en question, et avec un encodage pareil il est fortement sujet à des changements massifs (puisque c'est le possesseur de {{Coronavirus/Graph/Belgique}} qui décide quoi en faire, si il veut recommencer son graphique à 0 il décide) donc il faut faire attention à celui-là.
  2. La version importée via rvest donne 5 colonnes. Une est vide, et 2 sont redondantes (2 fois la date et 2 fois le nombre de malades). Problème: toutes les colonnes ont le même nom! difficile dès lors de les remanier....
  3. Le graphique obtenu par rvest ne différencie pas les malades, les morts (même si il n'y en a pas encore) et les soignés (il y en a 1, sur le graphique wikipédia il est affiché en bleu, mais dans le tableau r impossible de trouver une telle donnée)
  4. Le graphique utilise une fonction intelligente des graphiques wikipédia. Si entre deux jours ils ne se passe rien, l'auteur écrit juste "----------" et wikipédia copie/colle les dates. Ca donne quelque chose du genre
2020-02-04
----------
2020-02-15

et wikipédia considère que le 5 février, le 6, le 7, etc... jusqu'au 14 sont identiques au 04. Il faudra donc rajouter des dates, et ce automatiquement pour ne pas avoir à régler le problème à la main si la situation se reproduit (et ajouter 20 lignes à la main c'est pas très fun).

Voilà je pense avoir fait le tour des changements et des challenge, j ai pas mal commenté dans le code en lui même également donc jetez y un coup d'oeil

damien-dumont commented 4 years ago

Le lien du graphique sur l'évolution du nombre de malades est ici

https://fr.wikipedia.org/wiki/Mod%C3%A8le:Coronavirus/Graph/Belgique

Ce graphique sera très certainement plus intéressant à utliiser (le tableau wikipédia derrière est classique) donc j'imagine que ça sera plus facile à utliser.

damien-dumont commented 4 years ago

@GuyliannEngels après maintes tentatives, j'ai essayé de trouver un moyen de supprimer les lignes "total", qui sont en trop, sans supprimer celle pour bruxelles. J'ai essayé plein de méthodes différentes, aucune ne fonctionne, même supprimer ligne par ligne comme par exemple myData[-c(2, 4, 6), ]

J'ai tout explicité à la ligne 42 de "dataset.R". Je ne comprend pas l'origine de ce bug.

GuyliannEngels commented 4 years ago

Salut @damien-dumont ,

J'ai regardé une peu à ton problème. Je pense avoir résolu ton problème

GuyliannEngels commented 4 years ago

Le webscrapping c'était marrant mais nous avons enfin des données. La Belgique a enfin fait son boulot

A vous de jouer et de faire un beau Dashboard