gpt4 book ai didi

javascript - 将表单从 R 提交到混合 HTML 和 Javascript

转载 作者:行者123 更新时间:2023-12-02 15:47:04 25 4
gpt4 key购买 nike

我正在尝试将查询提交到 http://revigo.irb.hr/来自R,我很难过。该页面似乎是 HTML 和 Javascript 的混合体,这使得简单的 postForm() 解决方案变得复杂。查询是一个字符串(或字符串列表),如“GO:0004432”,结果页面有一个链接“将结果导出到文本表 (CSV)”,用于将数据下载为 .csv。以下使用 httr 的代码似乎没有从提交查询后出现的页面返回任何内容:

library(httr)
url <- "http://revigo.irb.hr/"
fd <- list(
submit = "Start Revigo",
goList1="GO:0004432"
)
resp<-POST(url, body=fd, encode="form")
resp

Response [http://revigo.irb.hr/]
Date: 2015-08-20 15:57
Status: 200
Content-Type: text/html;charset=UTF-8
Size: 18.5 kB

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title> REVIGO summarizes and visualizes long lists of Gene Ontology terms...
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="styles.css" type="text/css"></link>
<script type="text/javascript" src="js/jQuery/jquery-1.4.1.min.js" > </scri...
<script type="text/javascript" src="js/jQuery/jquery.qtip-1.0.0-rc3.min.js...

如何完成这样的任务?我想象工作流程看起来像这样:获取 url,分配参数(文本区域、单选按钮等、提交按钮),使用 url 和参数运行 getForm 之类的内容,搜索结果页面以获取 .csv 的链接,然后在该 url 上运行 read.csv()。

我的背景是 R,对 HTML 和 Javascript 的了解非常非常少。看看过去的问题,看起来 RSelenium、RCurl 或 httr 或其他包是最好的。如有任何建议或相关问题的链接,我们将不胜感激!

最佳答案

我希望这会有所帮助:

require(RSelenium)
url <- "http://revigo.irb.hr/"
checkForServer()
startServer()
fprof <- getFirefoxProfile("firefoxprofile",useBase = TRUE)
remDr <- remoteDriver(browserName="firefox",extraCapabilities = fprof)
remDr$open()
remDr$navigate(url)
webElem <- remDr$findElement("id","goList1")
keys <- c("GO:0042273","GO:0009853")
for (gene in keys){
webElem$sendKeysToElement(list(gene,key="enter"))
}
webElem <- remDr$findElement("name","startRevigo")
webElem$clickElement()
webElem <- remDr$findElement(using="xpath","/html/body/div[1]/div[1]/div[2]/form/table/tbody/tr[1]/td[2]/a[1]")
webElem$clickElement()
remDr$setImplicitWaitTimeout(5000)
table1 <- read.csv("REVIGO.csv")
file.remove("REVIGO.csv")
remDr$close()

这里我使用了一个 Firefox 配置文件,其中包含每当下载 csv 文件时都会自动下载到工作目录中的信息。我建议您使用 makeFirefoxProfile 和 passisng 参数创建类似的配置文件

fprof <- makeFirefoxProfile(list(browser.download.dir = getwd(),
browser.download.manager.showWhenStarting = FALSE,
browser.helperApps.neverAsk.saveToDisk = "text/csv"))

或者您可以像我在这里那样使用 getFirefoxProfile() 来使用现有的 Firefox 配置文件。

关于javascript - 将表单从 R 提交到混合 HTML 和 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32123248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com