标签: rcurl

RCurl相当于......

我目前正在使用这个R代码来获取我想在Ubuntu机器上做的事情......

jsontext <- '{"text": "its really cold in here"}'
a <- paste('curl -H "Content-Type: application/json" -d ', " '", jsontext, "'", ' -X POST http://urlhere', sep="")
response <- system(a)
Run Code Online (Sandbox Code Playgroud)

这给了我在命令提示符下输入时会得到的结果......

curl -H "Content-Type: application/json" -d '{"text": "its really cold in here"}' -X POST http://urlhere
Run Code Online (Sandbox Code Playgroud)

我尝试过使用RCurl postForm(uri ="http:// urlhere",有各种选项......)并且没有任何结果.以这种方式做得更快还是值得搞清楚?

谢谢

r rcurl

5
推荐指数
0
解决办法
360
查看次数

使用RCurl和SFTP

我是ftpUpload第一次尝试在RCurl包中使用它.

我正在尝试访问的站点使用sftp协议.我已确保安装libcurl版本,其中包括进行安全连接的能力.

SFTP列在RCurl可用的协议中:

curlVersion()$protocols
[1] "dict"   "file"   "ftp"    "ftps"   "gopher"
[6] "http"   "https"  "imap"   "imaps"  "ldap"  
[11] "pop3"   "pop3s"  "rtmp"   "rtsp"   "scp"   
[16] "sftp"   "smtp"   "smtps"  "telnet" "tftp"
Run Code Online (Sandbox Code Playgroud)

然而,当我运行该fileUpload功能时,我得到:

ftpUpload(what = "some_file.png",
          to = "userid:password@sftp://ec2-some-server-ip.compute-1.amazonaws.com")

Error in function (type, msg, asError = TRUE)  : 
Couldn't resolve host 'sftp'
Run Code Online (Sandbox Code Playgroud)

我也尝试在参数化方面打破useridpassword退出,但我得到相同的响应.

任何建议,将不胜感激.

sftp r rcurl

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

使用由RCurl代理引起的twitteR的JSON错误

我试图使用twitteR的searchTwitter()函数与curl代理,但我得到一个与JSON相关的错误.我看到很多人都遇到了同样的JSON错误.但我相信我的事业是不同的,所以我会在我的问题中尝试具体.

我已经使用Twitter的API正确设置了OAuth连接.我在Windows上,使用最新版本的R和所有软件包.我使用代理是因为我公司的防火墙.我RCurlOptions用来配置代理.我还带了RJSONIO.当我不必配置代理时,代码在我公司的防火墙之外运行良好.

library(RCurl)
library(twitteR)
library(RJSONIO)

options(RCurlOptions = list(
    proxy ="proxy.mycompany.net:8080",
    proxyuserpwd="USERNAME:PASSWORD",
    cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))

load("OAuth.RData") #Load in my OAuth credentials object
registerTwitterOAuth(cred)

geico.tweets <- searchTwitter('@geico', n = 2)
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

Error in twFromJSON(out) : 
  Error: Malformed response from server, was not JSON.
Run Code Online (Sandbox Code Playgroud)

我知道这不是Twitter返回R无法正确解析的字符的问题,因为我甚至无法引入任何单个推文(另外,它在防火墙之外工作正常).

此链接表明它可能是由于我使用RCurl引起的:https://github.com/omegahat/RCurl/issues/1

他的解释是因为我使用了RCurl而导致JSON搞砸了.将\\被转换为\通过R_mapString,这被称为仅如果数据包括Unicode字符.这跟我的理解差不多.他还提到了一个.mapUnicode论点.

RCurlOptions我可以配置一些参数来解决这个问题吗?谢谢.

twitter json r rcurl twitter-r

5
推荐指数
0
解决办法
719
查看次数

使用RCurl获取R矢量中的网站目录列表

我正在尝试获取网站目录中的文件列表.有没有办法类似于本地目录列表的dir()或list.files()命令?我可以使用RCurl连接到网站(我需要它,因为我需要通过HTTPS连接SSL):

library(RCurl)    
text=getURL(*some https website*
,ssl.verifypeer = FALSE
,dirlistonly = TRUE)
Run Code Online (Sandbox Code Playgroud)

但这会创建一个HTML文件,其中包含文件列表的图像,超链接等,但我只需要一个R矢量文件,就像你用dir()获得的那样.这可能吗?或者我是否必须进行HTML解析才能提取文件名?听起来像是一个简单问题的复杂方法.

谢谢,

编辑:如果你可以使用http://hgdownload.cse.ucsc.edu/goldenPath/hg19/encodeDCC/wgEncodeGencodeV7/,那么你会明白我的意思.

r rcurl

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

抓取API时'RCurl'[R]打包getURL网页错误

我正在尝试使用R中RCurl包的getURL函数从API中抓取页面上的数据.我的问题是当我使用R发出请求时,我无法复制在Chrome中打开URL时得到的响应基本上,当我在Chrome中打开API页面(下面的url)时它工作正常但是如果我在R中使用getURL请求它(或在Chrome中使用隐身模式)我得到'500内部服务器错误'响应而不是漂亮的我正在寻找的JSON.

有问题的网址/ API:http://www.bluenile.com/api/public/loose-diamond/diamond-details/panel?country = USA¤cy = USD&language = en-us&productSet = NN& sku = LD04077082

这是我在[R]中的(失败的)请求.

test2 <- fromJSON(getURL("http://www.bluenile.com/api/public/loose-diamond/diamond-details/panel?country=USA&currency=USD&language=en-us&productSet=BN&sku=LD04077082", ssl.verifypeer = FALSE, useragent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36"))
Run Code Online (Sandbox Code Playgroud)

我的研究到目前为止 我首先在堆栈上查看了这个先前的问题并在我的useragent中添加了请求(没有解决问题但可能仍然是必要的): RCurl包中的getURL()命令的ViralHeat API问题

接下来,我查看了这篇有用的帖子,它指导了我的理由: R浏览器和GET/getURL之间的差异

我对解决方案的想法 这不是我的专业领域,但我的猜测是请求缺少完成请求所需的cookie(因此它在隐身模式下无法在我的浏览器中工作).我将成功请求的请求和响应与不成功的请求进行了比较:

成功要求: 在此输入图像描述

不成功的请求:

在此输入图像描述

有人有主意吗?我应该在RSelenium第二篇文章中尝试使用MrFlick建议的软件包.

curl r geturl rcurl httr

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

在R中加载RCurl时如何解决“找不到程序”?

在 Windows 7 中使用 R 3.1.1 64 位,我无法加载 RCurl 或任何依赖于 RCurl 的包。我已经验证了 .dll 和其他文件在预期位置(即错误消息中打印的那个)的存在。

几个月前我在 Hadley 的 Github 上打开了一个问题,但当有人回复时,我已经开始使用另一个 R 副本,唯一的建议是重新安装,我已经做过好几次了。

我收到的错误是这样的:

require(devtools) 正在加载所需的包:devtools 在 inDL(x, as.logical(local), as.logical(now), ...) 中出错:无法加载共享对象 'C:/Users/jmiller/Documents/R /win-library/3.1/RCurl/libs/i386/RCurl.dll':LoadLibrary 失败:找不到指定的程序。

require(devtools) 正在加载所需的包:devtools 在 inDL(x, as.logical(local), as.logical(now), ...) 中出错:无法加载共享对象 'C:/Users/jmiller/Documents/R /win-library/3.1/RCurl/libs/i386/RCurl.dll':LoadLibrary 失败:找不到指定的程序。

有时即使仅使用与 完全无关的原始函数也会出现错误RCurl,例如:

> require(devtools)
Loading required package: devtools
Error in inDL(x, as.logical(local), as.logical(now), ...) : 
  unable to load shared object 'C:/Users/jmiller/Documents/R/win-library/3.1/RCurl/libs/i386/RCurl.dll':
  LoadLibrary failure:  The specified procedure could not be found.
Run Code Online (Sandbox Code Playgroud)

我几乎想知道问题是否以某种方式inDL而不是 …

dll r shared-libraries rcurl

5
推荐指数
0
解决办法
858
查看次数

R包:RCurl和curl包在Linux上安装失败

我希望你能为我在为R安装RCurl和卷曲包时遇到的这个问题提供帮助.

Rd warning: /tmp/RtmpOBkvFC/R.INSTALLd07e6c06faf4/RCurl/man/url.exists.Rd:5: missing file link ‘file.exists’
** building package indices
** testing if installed package can be loaded
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/home/majaidi/R/x86_64-redhat-linux-gnu-library/3.1/RCurl/libs/RCurl.so':   
  /lib64/libgssapi_krb5.so.2: symbol krb5int_buf_len, version krb5support_0_MIT not defined in file libkrb5support.so.0 with link time reference
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/home/majaidi/R/x86_64-redhat-linux-gnu-library/3.1/RCurl’

The downloaded source packages are in
   ‘/tmp/RtmpX6poG4/downloaded_packages’
Warning message:
In install.packages(pkgs = pkgs, lib = lib, repos = repos, ...) : …
Run Code Online (Sandbox Code Playgroud)

linux curl r rcurl

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

无法从github安装R-package

我正在尝试从github安装flowIncubator包(链接到包:https://github.com/RGLab/flowIncubator).我正在使用R版本3.3.1(2016-06-21).我试过这段代码: devtools::install_github("RGLab/flowIncubator")得到这个错误:

  Error in curl::curl_fetch_disk(url, x$path, handle = handle) : 
      Timeout was reached
    > traceback()
    12: .Call(R_curl_fetch_disk, url, handle, path, "wb", nonblocking)
    11: curl::curl_fetch_disk(url, x$path, handle = handle)
    10: request_fetch.write_disk(req$output, req$url, handle)
    9: request_fetch(req$output, req$url, handle)
    8: request_perform(req, hu$handle$handle)
    7: httr::GET(url, path = path, httr::write_disk(path = tmp))
    6: remote_package_name.github_remote(remote)
    5: remote_package_name(remote)
    4: FUN(X[[i]], ...)
    3: vapply(remotes, install_remote, ..., FUN.VALUE = logical(1))
    2: install_remotes(remotes, quiet = quiet, ...)
    1: devtools::install_github("RGLab/flowIncubator")
Run Code Online (Sandbox Code Playgroud)

我试图更新两个软件包devtools和curl,我试图将R更新为旧版本,我试图下载.zip文件并通过R studio安装它然后从库加载包.我也尝试直接将包文件放入库中.我使用过函数install.packages(),但无法安装它.

curl r devtools rcurl install.packages

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

R 以编程方式更改 IP 地址

当前通过将不同的字符串传递给html_session()方法来更改 user_agent 。

有没有办法在抓取网站时更改计时器上的 IP 地址?

r rcurl httr rselenium rvest

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

通过导航 doPostBack 使用 R 抓取网站

我想从网站下面定期提取一个表格。

单击积木名称(BLOK 16 A, BLOK 16 B, BLOK 16 C, ...)时,价格表会发生变化。URL 不改变,页面通过触发改变

javascript:__doPostBack('ctl00$ContentPlaceHolder1$DataList2$ctl04$lnk_blok','')
Run Code Online (Sandbox Code Playgroud)

在搜索 google 和 starckoverflow 后,我尝试了 3 种方法。

我尝试过的没有 1:这不会触发 doPostBack 事件。

postForm( "http://www.kentkonut.com.tr/tr/modul/projeler/daire_fiyatlari.aspx?id=44", ctl00_ContentPlaceHolder1_DataList2_ctl03_lnk_blok="ctl00$ContentPlaceHolder1$DataList2$ctl03$lnk_blok")
Run Code Online (Sandbox Code Playgroud)

我尝试过的没有 2: selenium remote 似乎可以在 ( http://localhost:4444/ ) 上工作,但 remotedriver 无法导航。返回此错误。(checkError(res) 中的错误:httr 调用中的未定义错误。httr 输出:length(url) == 1 不是 TRUE)

library(RSelenium)
startServer()
remDr <- remoteDriver()
remDr <- remoteDriver(remoteServerAddr = "localhost" 
                  , port = 4444L, browserName = "firefox")
remDr$open()
remDr$getStatus()
remDr$navigate("http://www.kentkonut.com.tr/tr/modul/projeler/daire_fiyatlari.aspx?id=44")
Run Code Online (Sandbox Code Playgroud)

我尝试过的没有 3:这是触发 dopostback 事件的另一种方式。它不导航。

base.url <- "http://www.kentkonut.com.tr/tr/modul/projeler/",
event.target <- 'ctl00$ContentPlaceHolder1$DataList2$ctl03$lnk_blok',
action <- "daire_fiyatlari.aspx?id=44" …
Run Code Online (Sandbox Code Playgroud)

r web-scraping rcurl rselenium rvest

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