-2

考虑一个有 4 个或更多列表<li>html 元素的网站。例如这样的网站:https ://www.cprd.com/bibliography/bibliography.html

使用xml2(或其他方法,但xml2首选管道),将列表提取为字符向量的最佳方法是什么?

url <- 'https://www.cprd.com/bibliography/bibliography.html'
library(xml2) 
page <- read_html(url)

输出应该是<li>网站上的列表列表。(每年有一份清单)

第一个列表的第一项应该等于“评估降糖药物发起者之间的通道偏差:一项英国队列研究。Ankarfeldt MZ、Thorsted BL、Groenwold RH、Adalsteinsson E、Ali MS、Klungel OH。临床流行病学。2017;9:19–30。

编辑:评论建议

library(rvest)
output<-page %>% html_nodes('ol') %>% lapply(html_nodes, 'li') %>% lapply(html_text, trim = TRUE)
output[[1]][1]

[1] "Assessment of channeling bias among initiators of glucose-lowering drugs: A UK cohort study. \r\n        Ankarfeldt MZ, Thorsted BL, Groenwold RH, Adalsteinsson E, Ali MS, Klungel OH. Clin Epidemiol. 2017;9:19㤼㸶30."
4

1 回答 1

2

使用rvest(这比 略有改进xml2):

library(rvest)

url <- 'https://www.cprd.com/bibliography/bibliography.html'

page <- read_html(url) %>% 
  html_nodes('ol') %>% 
  map(~html_nodes(.x, 'li') %>% 
        html_text() %>% 
        gsub(pattern = '\\t|\\r|\\n', replacement = '')
  )

gsub负责取出特殊字符,如“换行”和“制表”

于 2017-02-15T20:40:50.233 回答