我一直在努力逐步解决从collections_html_subpages中找到通讯作者的问题。
我检查了该网站,发现这是一个
您创建的文章 URL 不是该 Web 服务器上的有效路径。当您
paste()
prefix_str_1
和 a_href
时,第一个以 /
结尾,后者以 /
开头,生成的 URL 如下所示: https://molecularbrain.biomedcentral.com/articles//10.1186/s13041-023-01014-0
;正确的 URL 是 https://molecularbrain.biomedcentral.com/articles/10.1186/s13041-023-01014-0
(文章后面没有双 /
)。
最简单的解决方法是定义
prefix_str_1
,不带尾部 /
。
prefix_str_1 <- "https://molecularbrain.biomedcentral.com"
您还可以显着简化您的代码。
library(rvest)
base_url <- "https://molecularbrain.biomedcentral.com"
index_html <- read_html(file.path(base_url, "articles"))
# Title and Links ---------------------------------------------------------
a_elements <- html_elements(index_html, "h3.c-listing__title a")
a_href <- html_attr(a_elements, "href")
a_text <- html_text(a_elements)
# subpages ----------------------------------------------------------------
html_sub_pages <-
lapply(paste0(base_url, a_href),
read_html)
# Correspondence Author ---------------------------------------------------
lapply(html_sub_pages,
html_elements,
"#corresp-c1") |>
lapply(html_text)
#> [[1]]
#> [1] "Chao Qin"
#>
#> [[2]]
#> [1] "Won Do Heo"
#>
#> [[3]]
#> [1] "Seung-Jae Lee"
#> ...