考虑一个包含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>
列表的列表。 (每年有一个清单)
第一个清单应该有第一个项目等于&#39;评估葡萄糖降低药物的发起者之间的窜流偏倚:一项英国队列研究。 Ankarfeldt MZ,Thorsted BL,Groenwold RH,Adalsteinsson E,Ali MS,Klungel OH。 临床Epidemiol。 2017; 9:19-30&#39;
编辑:意见建议
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."
答案 0 :(得分: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
负责取出特殊字符,如“新行”和“制表”