javascript - 模仿从 R 中单击下载按钮
问题描述
如何从 R 会话中模仿单击以下网站中的下载按钮并下载 TSV 表?
https://comptox.epa.gov/dashboard/chemical_lists
我知道曾经有Rselenium 和 PhantomJS,它们都不再是最新的了,而且显然有V8。但是,我不能真正使用后者。
解决方案
该站点从GraphQL API调用中获取数据:
POST https://comptox.epa.gov/dashboard/graphql
当您单击下载按钮时,它会将相同的数据发送到另一个 api 以格式化数据并下载 tsv。
您可以首先从 API 获取数据并将其格式化为 tsv 文件:
library(httr)
query <- "{
lists {
label
abbreviation
short_description
chemical_count
updated_at
}
}"
r <- POST("https://comptox.epa.gov/dashboard/graphql",
content_type("application/json"),
body = list(
query = query
), encode = "json")
data <- content(r, "parsed")
#add link column
for(i in seq_along(data$data$lists)){
data$data$lists[[i]]$acronym <- paste("https://comptox.epa.gov/dashboard/chemical_lists", data$data$lists[[i]]$abbreviation, sep="/")
}
#convert to dataframe
df <- do.call(rbind.data.frame, data$data$lists)
write.table(df, file = "chemical.tsv", row.names=FALSE, sep="\t", quote = FALSE)
文件输出:
推荐阅读
- ios - 用swift 4写的这两行是一样的吗?
- javascript - 为什么我的 Auth0/passport 身份验证调用返回错误令牌,我该如何处理?
- python - 如何将前 4 个列表值划分为数据框 pandas 中的列
- git - 无法在 Gitea 上使用 Git LFS 推送大文件
- excel - VBA Excel“对象变量或未设置块变量”
- python - 在 MATLAB 和 Python 中重塑和索引
- html - 对于任何屏幕分辨率,如何将一张图像相对于另一张图像设置?
- java - 在 Java 中阻塞 main 方法总是不好的吗?
- mongodb - 关于 mongodb 副本集性能的一般问题
- node.js - type-graphql 实体如何从 JSON.stringify 中省略字段?