【发布时间】:2021-01-15 14:26:05
【问题描述】:
背景:
我正在搜索this website,以获取编辑委员会相应部门下所有人员的名单。
总共有 6 个部分,每个部分都以 <b>...</b> 部分开头。 (其实应该是5,但是代码有点乱。)
我的目标:
我想获取每个部分的所有人的列表(包含 6 个元素的列表,称为 people)。
我的方法:
我尝试在每个相应的<b>...</b>-tag 之后获取所有文本或text()。
但是,使用以下 R 代码和 XPath,我无法获得正确的列表:
journal_url <- "https://aepi.biomedcentral.com/about/editorial-board"
webpage <- xml2::read_html(url(journal_url))
# get a list of 6 sections
all_sections <- rvest::html_nodes(wholepage, css = '#editorialboard p')
# the following does not work properly
people <- lapply(all_sections, function(x) rvest::html_nodes(x, xpath = '//b/following-sibling::text()'))
错误的结果:
它不是给我一个包含每个部分的人的 6 个元素的列表,而是给我一个包含每个元素中的所有人的 6 个元素的列表。
预期结果:
预期的输出将以:
开头people
[[1]]
[1] Shichuo Li
[[2]]
[1] Zhen Hong
[2] Hermann Stefan
[3] Dong Zhou
[[3]]
[1] Jie Mu
# etc etc
【问题讨论】:
标签: r web-scraping xpath css-selectors rvest