当创建连接时open="r"
它允许逐行读取,这对于批量处理大数据流非常有用。例如这个脚本 https://gist.github.com/jeroenooms/d33a24958d99bb969ac0通过一次读取 100 行来解析相当大的 gzipped JSON HTTP 流。然而不幸的是 R 不支持 SSL:
> readLines(url("https://api.github.com/repos/jeroenooms/opencpu"))
Error in readLines(url("https://api.github.com/repos/jeroenooms/opencpu")) :
cannot open the connection: unsupported URL scheme
The RCurl
and httr
软件包确实支持 HTTPS,但我不认为它们能够创建类似于url()
。是否有其他方法可以对 HTTPS 连接进行逐行读取,类似于上面脚本中的示例?
是的,RCurl 可以“逐行读取”。事实上,它总是这样做,但是为了方便起见,更高级别的函数为您隐藏了这一点。您可以使用 write 函数(以及标头的 header 函数)来指定每次 libcurl 从结果主体接收到足够字节时调用的函数。该函数可以做任何它想做的事情。 RCurl 包本身有几个这样的例子。但这是一个简单的
curlPerform(url = "http://www.omegahat.org/index.html",
writefunction = function(txt, ...) {
cat("*", txt, "\n")
TRUE
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)