使用R从PDF抓取数据

时间:2018-11-19 23:14:06

标签: r pdf web-scraping screen-scraping

我想从此PDF http://medias4.fis-ski.com/pdf/2019/JP/3088/2019JP3088RL.pdf

中提取数据(跳台滑雪)

我对除围兜俱乐部出生日期

以外的所有数据都感兴趣

我正在尝试使用 pdftools

pdf_text("raw/data.pdf") %>% strsplit(split = "\n")

,我被困在这里。问题是 points (门补偿)列有时为空,有时不是。我不知道该怎么办。

我想要的输出是这样的:

Rank|Athlete       |Nation|(...)|Jump_1|Round_1|Jump_2|Round_2|Tot_points
1   |KLIMOV Evgeniy|RUS   |(...)|127.5 |130    |131.5 |133.4  |263.4

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

检查一下:

library(tidyverse)
text<-pdftools::pdf_text("http://medias4.fis-ski.com/pdf/2019/JP/3088/2019JP3088RL.pdf")

list<-str_remove_all(text,"\\X+?TOTAL\\s+RANK\n") %>% 
  str_trim() %>% 
  str_split("\n\\s{10,}(?=\\p{L})") %>% 
  modify_depth(1,~str_split(.x,"\\s{2,}") %>%
                   map(~.x[1:13] %>% 
                         set_names(paste0("x",1:13))) 
                   )
## Just the first page
df<-bind_rows(!!!list[[1]])

这不是一个确定的解决方案,但这是一些进步。