标签: rcurl

下载大文件时httr GET函数空间不足

我正在尝试下载一个1.1千兆字节的文件,httr但我遇到以下错误:

x <- GET( extract.path )
Error in curlPerform(curl = handle$handle, .opts = curl_opts$values) : 
  cannot allocate more space: 1728053248 bytes
Run Code Online (Sandbox Code Playgroud)

我的C盘有400GB免费..

RCurl包中,我看到maxfilesizemaxfilesize.large使用时的选项,getCurlOptionsConstants()但我不明白是否/如何传递httr通过configset_config..或如果我需要切换到RCurl这... ..即使我确实需要切换,会增加最大文件大小的工作吗?

这是我的sessionInfo ..

> sessionInfo()
R version 3.0.0 (2013-04-03)
Platform: i386-w64-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252 LC_NUMERIC=C                           LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] XML_3.96-1.1 …
Run Code Online (Sandbox Code Playgroud)

r web-scraping rcurl httr

6
推荐指数
1
解决办法
631
查看次数

无法安装“RCurl”(Rcurl.h:4:23:致命错误:curl/curl.h:没有这样的文件或目录)

我尝试了多种方法来安装 RCurl,但没有成功。我在输出中得到这个:

\n\n
    * installing *source* package \'RCurl\' ...\n** package \'RCurl\' successfully unpacked and MD5 sums checked\n** libs\nC:/Users/XXX/Documents/R/Rtools/mingw_64/bin/gcc  -I"C:/PROGRA~1/R/R-33~1.1/include" -DNDEBUG -I/include -DHAVE_LIBIDN_FIELD=1 -DHAVE_CURLOPT_URL=1 -DHAVE_CURLINFO_EFFECTIVE_URL=1 -DHAVE_CURLINFO_RESPONSE_CODE=1 -DHAVE_CURLINFO_TOTAL_TIME=1 -DHAVE_CURLINFO_NAMELOOKUP_TIME=1 -DHAVE_CURLINFO_CONNECT_TIME=1 -DHAVE_CURLINFO_PRETRANSFER_TIME=1 -DHAVE_CURLINFO_SIZE_UPLOAD=1 -DHAVE_CURLINFO_SIZE_DOWNLOAD=1 -DHAVE_CURLINFO_SPEED_DOWNLOAD=1 -DHAVE_CURLINFO_SPEED_UPLOAD=1 -DHAVE_CURLINFO_HEADER_SIZE=1 -DHAVE_CURLINFO_REQUEST_SIZE=1 -DHAVE_CURLINFO_SSL_VERIFYRESULT=1 -DHAVE_CURLINFO_FILETIME=1 -DHAVE_CURLINFO_CONTENT_LENGTH_DOWNLOAD=1 -DHAVE_CURLINFO_CONTENT_LENGTH_UPLOAD=1 -DHAVE_CURLINFO_STARTTRANSFER_TIME=1 -DHAVE_CURLINFO_CONTENT_TYPE=1 -DHAVE_CURLINFO_REDIRECT_TIME=1 -DHAVE_CURLINFO_REDIRECT_COUNT=1 -DHAVE_CURLINFO_PRIVATE=1 -DHAVE_CURLINFO_HTTP_CONNECTCODE=1 -DHAVE_CURLINFO_HTTPAUTH_AVAIL=1 -DHAVE_CURLINFO_PROXYAUTH_AVAIL=1 -DHAVE_CURLINFO_OS_ERRNO=1 -DHAVE_CURLINFO_NUM_CONNECTS=1 -DHAVE_CURLINFO_SSL_ENGINES=1 -DHAVE_CURLINFO_COOKIELIST=1 -DHAVE_CURLINFO_LASTSOCKET=1 -DHAVE_CURLINFO_FTP_ENTRY_PATH=1 -DHAVE_CURLINFO_REDIRECT_URL=1 -DHAVE_CURLINFO_PRIMARY_IP=1 -DHAVE_CURLINFO_APPCONNECT_TIME=1 -DHAVE_CURLINFO_CERTINFO=1 -DHAVE_CURLINFO_CONDITION_UNMET=1 -DHAVE_CURLOPT_KEYPASSWD=1 -DHAVE_CURLOPT_DIRLISTONLY=1 -DHAVE_CURLOPT_APPEND=1 -DHAVE_CURLOPT_KRBLEVEL=1 -DHAVE_CURLOPT_USE_SSL=1 -DHAVE_CURLOPT_TIMEOUT_MS=1 -DHAVE_CURLOPT_CONNECTTIMEOUT_MS=1 -DHAVE_CURLOPT_HTTP_TRANSFER_DECODING=1 -DHAVE_CURLOPT_HTTP_CONTENT_DECODING=1 -DHAVE_CURLOPT_NEW_FILE_PERMS=1 -DHAVE_CURLOPT_NEW_DIRECTORY_PERMS=1 -DHAVE_CURLOPT_POSTREDIR=1 -DHAVE_CURLOPT_OPENSOCKETFUNCTION=1 -DHAVE_CURLOPT_OPENSOCKETDATA=1 -DHAVE_CURLOPT_COPYPOSTFIELDS=1 -DHAVE_CURLOPT_PROXY_TRANSFER_MODE=1 -DHAVE_CURLOPT_SEEKFUNCTION=1 -DHAVE_CURLOPT_SEEKDATA=1 -DHAVE_CURLOPT_CRLFILE=1 -DHAVE_CURLOPT_ISSUERCERT=1 -DHAVE_CURLOPT_ADDRESS_SCOPE=1 -DHAVE_CURLOPT_CERTINFO=1 …
Run Code Online (Sandbox Code Playgroud)

curl r libcurl rcurl

6
推荐指数
1
解决办法
3306
查看次数

R - 更改站点后使用 curl 中的 getURL 时出错

我一直在使用 curl(在 R 中)的 getURL 从https://fantasy.premierleague.com/drf/bootstrap-static读取

示例代码: print(getURL("https://fantasy.premierleague.com/drf/bootstrap-static"))

直到几天前都没有问题。但现在得到错误:

Error in function (type, msg, asError = TRUE)  : 
  error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
Run Code Online (Sandbox Code Playgroud)

已升级到最新的 R (3.4.0) 和 curl 包:RCurl_1.95-4.8

我有一个解决方法(从 httr 使用 GET),但谁能帮我让它与 getURL 一起工作?

我相信服务器的变化是他们现在只支持 TLS 1.2。我尝试了以下修复,但现在出现新错误。可能与需要更新的 OpenSSL 相关?

CURL_SSLVERSION_TLSv1_2 <- 6L
opt <- RCurl::curlOptions(verbose = TRUE, sslversion = 
CURL_SSLVERSION_TLSv1_2)
print( RCurl::getURL("https://fantasy.premierleague.com/drf/bootstrap-static", .opts = opt))
Run Code Online (Sandbox Code Playgroud)

新错误是:

Unsupported SSL protocol version
Run Code Online (Sandbox Code Playgroud)

r rcurl

6
推荐指数
1
解决办法
9609
查看次数

包“RCurl”的安装具有非零退出状态

我尝试在 OS X 10.12.6 上安装 RCurl 但出现以下错误:

\n\n
Error: package or namespace load failed for \xe2\x80\x98RCurl\xe2\x80\x99 in dyn.load(file, DLLpath = DLLpath, ...):\n unable to load shared object \'/Users/nick/Library/R/3.4/library/RCurl/libs/RCurl.so\':\n  dlopen(/Users/nick/Library/R/3.4/library/RCurl/libs/RCurl.so, 6): Library not loaded: @rpath/libcurl.4.dylib\n  Referenced from: /Users/nick/Library/R/3.4/library/RCurl/libs/RCurl.so\n  Reason: image not found\nError: loading failed\nExecution halted\nERROR: loading failed\n* removing \xe2\x80\x98/Users/nick/Library/R/3.4/library/RCurl\xe2\x80\x99\n\nThe downloaded source packages are in\n    \xe2\x80\x98/private/var/folders/hx/9xx9fwq91t95k45dzlmzxfy40000gp/T/Rtmp14zSi1/downloaded_packages\xe2\x80\x99\nWarning message:\nIn install.packages("RCurl") :\n  installation of package \xe2\x80\x98RCurl\xe2\x80\x99 had non-zero exit status\n
Run Code Online (Sandbox Code Playgroud)\n\n

这个错误已经被讨论过一些,但是解决方案都是特定于 linux 的,我不认为它们与 OS X 相关。我确实尝试安装了自制版本,curl但这没有帮助。

\n\n

有任何想法吗?我认为更多的调试信息会有所帮助,但我不确定还可以提供什么。

\n\n

预先感谢!\n尼克

\n

macos r rcurl

6
推荐指数
1
解决办法
8576
查看次数

R库(RCurl)在travis-ci上的行为改变

这段代码以前在travis-ci上工作但现在失败了.在appveyor上工作正常

RCurl::getURL( "ftp://ftp.cdc.gov/pub/data/yrbs/" , ftp.use.epsv = TRUE, dirlistonly = TRUE )
Run Code Online (Sandbox Code Playgroud)

这是错误的文本 -

Error in function (type, msg, asError = TRUE)  : 
  server did not report OK, got 425
Calls: get_catalog ... <Anonymous> -> curlPerform -> .Call -> <Anonymous> -> fun
Run Code Online (Sandbox Code Playgroud)

我认为我.travis.yml是一个非常标准的配置:

language: r
cache: packages
sudo: required
apt_packages:
- unixodbc-dev
- libarchive-dev
Run Code Online (Sandbox Code Playgroud)

2018年2月底成功构建日志,网址https://api.travis-ci.org/v3/job/343635739/log.txt

失败的构建日志2018年3月初https://api.travis-ci.org/v3/job/352115990/log.txt

libcurl块看起来几乎相同,但成功和失败之间有一个明显的区别 -

2月末成功:

2 upgraded, 35 newly installed, 1 to remove and 124 not upgraded.
Run Code Online (Sandbox Code Playgroud)

3月中旬失败:

2 upgraded, 35 …
Run Code Online (Sandbox Code Playgroud)

ubuntu r libcurl rcurl travis-ci

6
推荐指数
0
解决办法
116
查看次数

读取R中的原始数据,使用dropbox api保存为.RData文件

已经制定了OAuth的签名审批制度,对Dropbox的,我想下载,我救了一个有文件.RData使用API,以及httrGET功能.

该请求是sucessfull与数据回来,但它是在原始格式,并想知道我怎么去再次将其转换成一个RDATA文件我的本地驱动器上.

这就是我到目前为止所做的:......

require(httr)
db.file.name <- "test.RData"
db.app <- oauth_app("db",key="xxxxx", secret="xxxxxxx")
db.sig <- sign_oauth1.0(db.app, token="xxxxxxx", token_secret="xxxxxx")

response <- GET(url=paste0("https://api-content.dropbox.com/1/files/dropbox/",db.file.name),config=c(db.sig,add_headers(Accept="x-dropbox-metadata")))

str(response)
List of 8
 $ url        : chr "https://api-content.dropbox.com/1/files/dropbox/test.RData"
 $ handle     :List of 2
  ..$ handle:Formal class 'CURLHandle' [package "RCurl"] with 1 slots
  .. .. ..@ ref:<externalptr> 
  ..$ url   :List of 8
  .. ..$ scheme  : chr "https"
  .. ..$ hostname: chr "api-content.dropbox.com"
  .. ..$ port    : NULL
  .. ..$ path    : chr ""
  .. ..$ query …
Run Code Online (Sandbox Code Playgroud)

r rcurl dropbox-api httr

5
推荐指数
1
解决办法
1696
查看次数

获取响应标头

我想从GET或POST获取响应头.

我的例子是:

    library(httr)
    library(RCurl)
    url<-'http://www.omegahat.org/RCurl/philosophy.html'
    doc<-GET(url)
    names(doc)

[1] "url"         "handle"      "status_code" "headers"     "cookies"     "content"     "times"       "config"  
Run Code Online (Sandbox Code Playgroud)

但是没有响应标头,只有请求标头.

结果应该是这样的:

Connection:Keep-Alive
Date:Mon, 11 Feb 2013 20:21:56 GMT
ETag:"126a001-e33d-4c12cf2702440"
Keep-Alive:timeout=15, max=100
Server:Apache/2.2.14 (Ubuntu)
Vary:Accept-Encoding
Run Code Online (Sandbox Code Playgroud)

我可以用R和httr/RCurl包来做这件事,还是R还不足以解决这类问题?

编辑:我想获得所有响应标头.我主要对位置响应感兴趣,这不是在这个例子中.

Edit2:我忘了告诉系统我在做什么 - 它是Windows 7

我的session.info

> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=Polish_Poland.1250  LC_CTYPE=Polish_Poland.1250    LC_MONETARY=Polish_Poland.1250
[4] LC_NUMERIC=C                   LC_TIME=Polish_Poland.1250    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] rjson_0.2.12 RCurl_1.95-3 bitops_1.0-5 httr_0.2     XML_3.95-0.1

loaded …
Run Code Online (Sandbox Code Playgroud)

r rcurl httr

5
推荐指数
2
解决办法
1991
查看次数

getURL(来自RCurl包)无法循环工作

我有一个名为URLlist的URL列表,并在其上循环以获取每个URL的源代码:

for (k in 1:length(URLlist)){
    temp = getURL(URLlist[k])
}
Run Code Online (Sandbox Code Playgroud)

问题是一些随机URL,代码卡住了,我得到了错误消息:

Error in function (type, msg, asError = TRUE)  : 
    transfer closed with outstanding read data remaining
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用出现问题的URL的getURL函数而不是在循环中时,它可以正常工作。

有什么帮助吗?非常感谢你

r rcurl

5
推荐指数
1
解决办法
2051
查看次数

R浏览器和GET/getURL之间的差异

我正在尝试从页面下载内容,并且我发现响应数据格式不正确或不完整,就好像GET或getURL在加载这些数据之前一样.

library(httr)
library(RCurl)
url <- "https://www.vanguardcanada.ca/individual/etfs/etfs.htm"
d1 <- GET(url) # This shows a lot of {{ moustache style }} code that's not filled
d2 <- getURL(url) # This shows "" as if it didn't get anything
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么办.我的目标是获取与浏览器中显示的链接相关联的数字:

https://www.vanguardcanada.ca/individual/etfs/etfs-detail-overview.htm?portId=9548
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,我想下载并刮掉'9548'.

不确定为什么getURL和GET似乎与浏览器中显示的结果大相径庭.似乎数据加载缓慢,几乎就像GET和getURL在完全加载之前一样.

例如,看看:

x <- "https://www.vanguardcanada.ca/individual/etfs/etfs-detail-prices.htm?portId=9548"
readHTMLTable(htmlParse(GET(x)))
Run Code Online (Sandbox Code Playgroud)

curl r rcurl httr

5
推荐指数
1
解决办法
1430
查看次数

下载隐藏最终链接时保留原始文件名的文件

我需要下载一个文件,将其保存在文件夹中,同时保留网站上的原始文件名.

url <- "http://www.seg-social.es/prdi00/idcplg?IdcService=GET_FILE&dID=187112&dDocName=197533&allowInterrupt=1"
Run Code Online (Sandbox Code Playgroud)

在Web浏览器中,如果单击该链接,则可以下载具有以下文件名的excel文件:

AfiliadosMuni-02-2015.xlsx

我知道我可以使用R中的命令download.file轻松下载它,如下所示:

download.file(url, "test.xlsx", method = "curl")
Run Code Online (Sandbox Code Playgroud)

但我真正需要的是我的脚本是下载它保持原始文件完整.我也知道我可以通过我的控制台卷曲这样做.

curl -O -J $"http://www.seg-social.es/prdi00/idcplg?IdcService=GET_FILE&dID=187112&dDocName=197533&allowInterrupt=1"
Run Code Online (Sandbox Code Playgroud)

但是,我再次在R脚本中需要这个.有没有类似于上面的方法,但在R?我已经研究过RCurl包但我找不到解决方案.

curl r download rcurl

5
推荐指数
1
解决办法
1059
查看次数

标签 统计

r ×10

rcurl ×10

httr ×4

curl ×3

libcurl ×2

download ×1

dropbox-api ×1

macos ×1

travis-ci ×1

ubuntu ×1

web-scraping ×1