|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- ---
- title: "Web scraping"
- author: "Maxime Wack"
- date: "19/11/2019"
- output:
- xaringan::moon_reader:
- css: ['default','css/my_style.css']
- lib_dir: libs
- seal: false
- nature:
- ratio: '4:3'
- countIncrementalSlides: false
- self-contained: true
- beforeInit: "addons/macros.js"
- highlightLines: true
- pdf_document:
- seal: false
- ---
-
- ```{r setup, include=FALSE}
- knitr::opts_chunk$set(echo = TRUE, fig.asp= .5)
- library(tidyverse)
- library(DT)
- library(knitr)
-
- options(DT.options = list(paging = F,
- info = F,
- searching = F))
-
- datatable <- partial(datatable, rownames = F)
- ```
-
- class: center, middle, title
-
- # UE Visualisation
-
- ### 2019-2020
-
- ## Dr. Maxime Wack
-
- ### AHU Informatique médicale
- #### Hôpital Européen Georges Pompidou, </br> Université de Paris
-
- ---
-
- # Web scraping
-
- ### Utilisation de `httr` et `rvest`
-
- ## httr
-
- Permet de faire des requêtes réseau
-
- → interroger et télécharger directement depuis R
-
- ## rvest
-
- Extraction de données depuis des pages HTML
-
- ---
-
- # httr
-
- ```{r init, echo = F, message = F, error = F}
- library(tidyverse)
- library(httr)
- library(rvest)
- ```
-
- Télécharger une page wikipedia
-
- ```{r dl wikipedia}
- GET("https://en.wikipedia.org/wiki/Comparison_of_operating_systems") -> wiki
- ```
-
- ```{r dl wikipedia do, echo = F}
- wiki
- ```
-
- ---
-
- # Parsing HTML
-
- ```{r html}
- wiki %>%
- read_html -> wiki_html
- ```
-
- ```{r html do, echo = F}
- wiki_html
- ```
-
- ---
-
- # Sélecteurs CSS
-
- [W3Schools](https://www.w3schools.com/cssref/css_selectors.asp)
-
- ### Selecteurs permettant d'identifier un **nœud** précis dans le **DOM** (Document Object Model) d'une page HTML
-
- ### Permet de sélectionner par identifiant, classe, position dans la hiérarchie, position entre élements d'un même niveau, ou relativement entre élements
-
- ### Utiliser l'**inspecteur** des outils de développement du navigateur pour identifier les éléments à capturer
-
- ---
-
- # Sélecteurs CSS
-
- ```{r tables}
- wiki_html %>%
- html_nodes(".wikitable")
- ```
-
- ```{r table}
- wiki_html %>%
- html_node("div + .wikitable")
- ```
-
- ---
-
- # Extraction d'une table
-
- ```{r scrape}
- wiki_html %>%
- html_node("div + .wikitable") %>%
- html_table -> wikitable
- ```
-
- ```{r scrape do, echo = F}
- datatable(wikitable)
- ```
-
- ---
-
- # Exercices
-
- ### Transformer cette table en forme normale
-
- ### Extraire la table avec les informations techniques
-
- ### Identifier les OS libres fonctionnant avec un microkernel
|