我是网络抓取的新手,我可以使用revest做基础工作,但我想要的信息是在#fragment;
https://www.neurosynth.org/analyses/terms/dorsomedial%20prefrontal/研究如果我运行
website <- https://www.neurosynth.org/analyses/terms/dorsomedial%20prefrontal/#studies
website %>% html_elements("#analysis-studies-table a")
使用选择器小工具从"研究"中找到CSS代码。子菜单,它返回一个空结果,我认为因为它正在查看默认的片段菜单" map "
https://www.neurosynth.org/analyses/terms/dorsomedial%20prefrontal/
我需要做些什么来绕过这个问题并抓取研究数据(研究名称,作者,期刊)?
您可以调用API并传入页面源中提供的分析id。这将返回所有178个清单。
library(jsonlite)
library(purrr)
library(rvest)
link <- "https://www.neurosynth.org/api/analyses/724/studies?dt=1"
data <- jsonlite::read_json(link)$data
df <- map_dfr(data, ~ {
node <- read_html(.x[[1]]) %>% html_node("a")
data.frame(
title = node %>% html_text2(),
webpage = node %>% html_attr("href") %>% url_absolute(link),
authors = .x[[2]],
journal = .x[[3]],
loading = .x[[4]]
)
})
这个swagger文件仍在工作,但没有列出所有路由:https://neurosynth.org/api/swagger.json
我不知道你的最终目标是什么,但是有很多相关的GitHub包和下面的python教程(未测试):https://nbviewer.org/github/neurosynth/neurosynth/blob/master/examples/neurosynth_demo.ipynb