Hi 请问有谁知道如下用R提交表单(http://impala.molgen.mpg.de/impala/runAnalysis),并且获得返回页面的下载链接下载的数据吗?
可以用下面的数据测试:
HMDB00060
HMDB00056
HMDB00064
HMDB00092
HMDB00134
HMDB00123
HMDB00742
进入网页:http://impala.molgen.mpg.de/impala/runAnalysis
在右边输入框输入上面的编号,
然后下方选择pathway over-representation analysis
最后点击下方的开始分析,然后会进入结果页面,有一个下载csv的链接,我主要是想自动把这个csv的数据下载回来。

多谢高人指点,不甚感激。

吴先
这个很简单:POST后,貌似下载数据是根据cookie,来记录你最近查询的内容。
直接把你cookie拼后面就是data
http://impala.molgen.mpg.de/impala/impala/downloadResults?_ZopeId="57367910A65do644nmY"

get什么的就能弄下来。
PS:我比较喜欢这种网站,强烈鄙视百度指数、51job。各种烦人的限制
[未知用户]
Hi 非常感谢您的回复,能否提供我一个例子代码,不甚感激。
祝好!
#POST方法
myHttpheader<- c(
  "Connection"="keep-alive",
  "Host"="impala.molgen.mpg.de",
  "User-Agent"="Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0",
  "Accept"="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
  "Accept-Language"="zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3",
  "Content-Type"="multipart/form-data; boundary=----WebKitFormBoundaryAt5WkZAJ0FIYcbhn",
  #"Accept-Encoding"="gzip,deflate"#,
  "Cookie"="_ZopeId=57367910A65do644nmY",
  "Referer"="http://impala.molgen.mpg.de/impala/"
)
d = debugGatherer()
cHandle2 <- getCurlHandle(httpheader=myHttpheader,followlocation=1,
                          debugfunction=d$update,verbose=TRUE)
postForm("http://impala.molgen.mpg.de/impala/impala/runAnalysis",geneacctype="invalid",
         compounds="HMDB00060
HMDB00056
HMDB00064
HMDB00092
HMDB00134
",
         compoundacctype="hmdb",
         analysis="ora",
         curl = cHandle2,style = "httppost")


最简单的方法POST后:
会查到你post后返回的结果(貌似只保留最后一次post,没测)
地址问号后是你的cookie信息。
text<-getURL("http://impala.molgen.mpg.de/impala/impala/downloadResults?_ZopeId=57367910A65do644nmY")
值后自己写文件吧。
XXXX改成你的cookie
_ZopeId=XXXX
固定值,反正我是没变过。
若是下载建议,自己查getBinaryURL函数


或者复杂点写完整
#写你自己的cookie信息
myHttpheader<- c(
  "Connection"="keep-alive",
  "Host"="impala.molgen.mpg.de",
  "User-Agent"="Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0",
  "Accept"="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
  "Accept-Language"="zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3",
  #"Accept-Encoding"="gzip,deflate"#,
  "Cookie"="_ZopeId=57367910A65do644nmY"
)
d = debugGatherer()
cHandle2 <- getCurlHandle(httpheader=myHttpheader,followlocation=1,
                          debugfunction=d$update,verbose=TRUE)

#curlSetOpt(.opt=list(CURLOPT_WRITEDATA="test.lg"),cHandle2)
getURL("http://impala.molgen.mpg.de/impala/impala/downloadResults",curl=cHandle2 ,.encoding = 'UTF-8',.opts=list())



帮你到这吧。。。。测试是没问题。
[未知用户]
您好,太感谢了。另外,我找到了一种更容易的方法,这个网站提供http://impala.molgen.mpg.de/wsdoc,我们可以通过R包SSOAP来获得访问的函数。不够我还没有搞清楚具体如何设置参数。