我正在尝试从需要我的用户名和密码的网站上自动下载图片。为了保持身份验证,我创建了一个类“ CURLHandle”的对象,该对象保留了我的凭据。我不明白在必须下载时如何将带有Cookie的对象传递给我。
#install_github("omegahat/RHTMLForms")
library(RHTMLForms)
library(RCurl)
require(XML)
#create connection function from login form
login<-getHTMLFormDescription("http://mysite//Login.php")
login<-login$Login
submit<-createFunction(login)
#create section with cookiefile
curl = getCurlHandle(cookiefile = "", verbose = TRUE)
#Log in
submit(Password=mypass,User=myuser,.curl = curl )
#now I can navigate on the site
my_page<-getURL("http://mysite/table.php?id=988", curl = curl)
#I get for the id 988 an Url png image
my_picture<-getHTMLExternalFiles(my_page)[1]
my_picture<-paste("http://mysite/",my_picture,sep="")
setwd("c:\\temp")
download.file(my_picture, 'my_pic.png', extra = 'curl')
> trying URL '...'
> Error in download.file(my_picture, "my_pic.png", extra = "curl") :
> cannot open URL '...'
您可以使用getBinaryURL
:
myBin <- getBinaryURL(my_picture, curl = curl)
writeBin(myBin, "my_pic.png")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句