-2
請考慮一個網站,其中包含4個或更多列表<li>
html元素。 例如像這樣的網站:https://www.cprd.com/bibliography/bibliography.html如何將網頁中的HTML列表讀入R
使用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。 Clin Epidemiol。 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."
你有試過什麼嗎?你遇到什麼問題? – Jota
嘗試使用['rvest'](http://stat4701.github.io/edav/2015/04/02/rvest_tutorial/)包:'library(rvest); read_html('https://www.cprd.com/bibliography/bibliography.html')%>% html_nodes('ol')%>% lapply(。,function(x)html_nodes(x,'li') %>%html_text())'。 – Abdou
@Abdou如果你的'lapply'(或者'purrr :: map',隨着情況變得更加複雜將變得更加方便)兩次,代碼將更容易閱讀:'h2%>%html_nodes('ol') %>%lapply(html_nodes,'li')%> lapply(html_text,trim = TRUE)'從時間上看,它們幾乎完全相同。 – alistaire