2 votes

Extraire des liens de sites Web - R

J'utilise RSelenium pour récupérer la source de la page sur le site archive.org afin de pouvoir récupérer les liens avec rvest.

library(rvest); library(tidyverse); 
library(RSelenium); library(netstat)

remote_driver = rsDriver(browser = 'firefox',
                         verbose = F,
                         port = free_port())
rd = remote_driver$client
rd$open()
rd$navigate('https://web.archive.org/web/20220913022021/http://www.bjjcompsystem.com/tournaments/1869/categories')
rd$maxWindowSize()

html = read_html(rd$getPageSource()[[1]])

get_links <- html %>%
  html_nodes('.categories-grid__category a') %>%
  html_attr('href') %>%
  paste0('https://web.archive.org', .)

Il réussit à extraire le lien du site Web d'origine, mais manque la partie appartenant à archive.org.

C'est ce que renvoie le premier exemple :

https://web.archive.orghttp://www.bjjcompsystem.com/tournaments/1869/categories/2053146

Mais il manque l'identifiant unique :

/web/20220913024354/

Voici à quoi devrait ressembler le lien complet : https://web.archive.org/web/20220913024354/https://www.bjjcompsystem.com/tournaments/1869/categories/2053146

Comment récupérer la partie manquante ?

A quoi doivent ressembler les liens scrappés :

https://web.archive.org/web/20220913024354/https://www.bjjcompsystem.com/tournaments/1869/categories/2053146

https://web.archive.org/web/20220913024425/https://www.bjjcompsystem.com/tournaments/1869/categories/2053150

https://web.archive.org/web/20220913024456/https://www.bjjcompsystem.com/tournaments/1869/categories/2053154

etc.

2voto

Tom Hoel Points 352

Je ne suis pas sûr de ce que vous voulez dire. Comme ceci ?

library(tidyverse)
library(rvest)

"https://web.archive.org/web/20220913022021/http://www.bjjcompsystem.com/tournaments/1869/categories" %>% 
  read_html() %>%  
  html_elements(".categories-grid__category a") %>% 
  html_attr("href") %>%  
  paste0("https://web.archive.org", .)

[1] "https://web.archive.org/web/20220913022021/http://www.bjjcompsystem.com/tournaments/1869/categories/2053146"
[2] "https://web.archive.org/web/20220913022021/http://www.bjjcompsystem.com/tournaments/1869/categories/2053150"
[3] "https://web.archive.org/web/20220913022021/http://www.bjjcompsystem.com/tournaments/1869/categories/2053154"
[4] "https://web.archive.org/web/20220913022021/http://www.bjjcompsystem.com/tournaments/1869/categories/2053158"
[5] "https://web.archive.org/web/20220913022021/http://www.bjjcompsystem.com/tournaments/1869/categories/2053162"
[6] "https://web.archive.org/web/20220913022021/http://www.bjjcompsystem.com/tournaments/1869/categories/2053166"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X