标签: rcurl

"非零退出状态"R 3.0.1'XML'和'RCurl'

我在我的Ubuntu机器13.10上安装XML和RCurl时遇到了一些麻烦.我今天进行了所有sudo更新和升级.

我正试图用R拨浪鼓.我无法安装使用拨浪鼓所需的'XML'.这与一年后在这里提出的问题几乎是同一个问题.以下是我要回复的错误消息:

> install.packages("RCurl")
Installing package into ‘/home/steven/R/x86_64-pc-linux-gnu-library/3.0’
(as ‘lib’ is unspecified)
trying URL 'http://cran.rstudio.com/src/contrib/RCurl_1.95-4.1.tar.gz'
Content type 'application/x-gzip' length 870915 bytes (850 Kb)
opened URL
==================================================
downloaded 850 Kb

* installing *source* package ‘RCurl’ ...
** package ‘RCurl’ successfully unpacked and MD5 sums checked
checking for curl-config... no
Cannot find curl-config
ERROR: configuration failed for package ‘RCurl’
* removing ‘/home/steven/R/x86_64-pc-linux-gnu-library/3.0/RCurl’
Warning in install.packages :
  installation of package ‘RCurl’ had non-zero exit status

The downloaded source packages are in …
Run Code Online (Sandbox Code Playgroud)

xml linux r rcurl install.packages

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

在R中上传超过2.15 GB的文件

我有一个手动过程,我通过curl将5-6 GB文件上传到Web服务器:

curl -X POST --data-binary @myfile.csv http://myserver::port/path/to/api
Run Code Online (Sandbox Code Playgroud)

这个过程很好,但是我喜欢用R自动化它.问题是,我要么不知道我在做什么,要么curl的R库不知道如何处理大于~2GB的文件:

library(RCurl)
postForm(
     "http://myserver::port/path/to/api",
      file = fileUpload(
        filename = path.expand("myfile.csv"),
        contentType = "text/csv"
      ),.encoding="utf-8")
Run Code Online (Sandbox Code Playgroud)

Yeilds Error: Internal Server Error

httr也不起作用:

library(httr)
POST(
      url = "http://myserver:port/path/to/api",
      body = upload_file(
        path =  path.expand("myfile.csv"),
        type = 'text/csv'),
      verbose()
    )
Run Code Online (Sandbox Code Playgroud)

产量:

Response [http://myserver:port/path/to/api]
  Date: 2015-06-30 11:11
  Status: 400
  Content-Type: <unknown>
<EMPTY BODY>
Run Code Online (Sandbox Code Playgroud)

httr对该verbose()选项提供了更多信息,告诉我:

-> POST http://myserver:port/path/to/api
-> User-Agent: libcurl/7.35.0 r-curl/0.9 httr/1.0.0
-> Host: http://myserver::port
-> Accept-Encoding: gzip, deflate
-> Accept: application/json, text/xml, application/xml, */* …
Run Code Online (Sandbox Code Playgroud)

curl r rcurl httr

36
推荐指数
1
解决办法
1290
查看次数

如何用R下载半破javascript asp函数后面的文件

我正在尝试修复我公开提供的下载自动化脚本,以便任何人都可以使用R轻松下载世界价值观调查.

在此网页- http://www.worldvaluessurvey.org/WVSDocumentationWV4.jsp - PDF链接"WVS_2000_Questionnaire_Root"容易在Firefox和chrome.I下载无法弄清楚如何自动下载使用httrRCurl或任何其它的R包.下面是Chrome互联网行为的截图.PDF链接需要跟进http://www.worldvaluessurvey.org/wvsdc/DC00012/F00001316-WVS_2000_Questionnaire_Root.pdf的最终来源,但如果直接点击它们,则会出现连接错误.我不清楚这是否与请求标头Upgrade-Insecure-Requests:1或响应标头状态代码有关302

点击新的worldvaluessurvey.org网站,使用chrome的inspect元素窗口打开让我觉得这里有一些hacky编码决策,因此标题半破:/

在此输入图像描述

javascript asp.net r rcurl httr

27
推荐指数
2
解决办法
795
查看次数

R:使用TLS/SSL安全下载数据

官方声明

在过去,基础R download.file()无法使用HTTPS协议,因此必须使用RCurl.自R 3.3.0起:

所有版本都支持https:URL,默认方法是download.file(),url()和使用它们的代码.遗憾的是,无法保证可以访问任何特定的https:URL....不同的访问方法可能允许不同的协议或使用私有证书包...

download.file() 帮助下仍然说道:

提供的包"RCurl"提供了更全面的URL下载工具.

其中(顺便提一下包括cookie和标题管理).

基于RCurl常见问题解答(查找"当我尝试通过https与URL进行交互时,我收到错误"),可以通过以下方式管理HTTPS URL:

getURL(url, cainfo="CA bundle")
Run Code Online (Sandbox Code Playgroud)

其中CA bundle是证书颁发机构捆绑文件的路径.一个这样的捆绑可以从卷曲网站本身获得:https:
//curl.haxx.se/ca/cacert.pem

当前状态

测试基于Windows平台

对于许多HTTPS网站的 download.file()工作原理如下:

download.file(url="https://www.google.com", destfile="google.html")
download.file(url="https://curl.haxx.se/ca/cacert.pem", destfile="cacert.pem")
Run Code Online (Sandbox Code Playgroud)

关于RCurl,使用cacert.pem上面下载的包,可能会出现错误:

library(RCurl)
getURL("https://www.google.com", cainfo = "cacert.pem")    
# Error in function (type, msg, asError = TRUE)  : 
#   SSL certificate problem: unable to get local issuer certificate
Run Code Online (Sandbox Code Playgroud)

在这种情况下,只需删除对证书包的引用即可解决问题:

getURL("https://www.google.com")                      # works
getURL("https://www.google.com", ssl.verifypeer=TRUE) # works
Run Code Online (Sandbox Code Playgroud)

ssl.verifypeer = TRUE用于确保成功不是由于getURL()压制安全性.该论点记录在RCurl FAQ中 …

ssl curl r ssl-certificate rcurl

24
推荐指数
1
解决办法
1180
查看次数

R - install_github失败

我试图从R中的github安装一个包,但是我收到以下错误:

> install_github("jmp75/rClr", build_vignettes=TRUE)
Downloading github repo jmp75/rClr@master
Error in curl::curl_fetch_memory(url, handle = handle) : 
Peer certificate cannot be authenticated with given CA certificates
Run Code Online (Sandbox Code Playgroud)

我已经设置了RCurl选项:

options(RCurlOptions = c(getOption("RCurlOptions"),   ssl.verifypeer = FALSE,  ssl.verifyhost = FALSE ) )
Run Code Online (Sandbox Code Playgroud)

检查设置后:

getOption("RCurlOptions")
Run Code Online (Sandbox Code Playgroud)

我们看....

$cainfo
[1] "C:/_CODE/R/Library/RCurl/etc/ca-bundle.crt"

$ssl.verifypeer
[1] FALSE

$ssl.verifyhost
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

我仍然得到错误:

Downloading github repo jmp75/rClr@master
Error in curl::curl_fetch_memory(url, handle = handle) : 
Peer certificate cannot be authenticated with given CA certificates
Run Code Online (Sandbox Code Playgroud)

任何线索

r github rcurl

22
推荐指数
1
解决办法
1万
查看次数

改变R中的Tor身份

我将Tor与R结合使用,并希望为每个新请求更改我的IP.我的代码如下:

library(RCurl)
opts <- list(proxy="127.0.0.1", proxyport=8118)
for (i in 1:10)
  {
  con <- socketConnection(host="127.0.0.1",port=9051)  # DOES NOT WORK
  writeLines("signal newnym", con=con)                 # DOES NOT WORK
  ip <- getURL("http://ifconfig.me/ip", .opts = opts)  
  print(ip)
  Sys.sleep(1)
  }  
Run Code Online (Sandbox Code Playgroud)

我可以通过Tor连接,但是标记为"DOES NOT WORK"的两条线似乎没有得到正确的信号到Tor,所以IP保持不变.

问候!

ip r tor rcurl

19
推荐指数
1
解决办法
3448
查看次数

使用RCurl或httr自动登录R中的英国数据服务网站

我正在为http://asdfree.com/编写一组可自由下载的R脚本,以帮助人们分析英国数据服务托管的复杂样本调查数据.除了为这些数据集提供大量统计教程之外,我还想自动下载和导入此调查数据.为了做到这一点,我需要弄清楚如何以编程方式登录这个英国数据服务网站.

我已经尝试了许多不同的RCurlhttr配置来登录,但是我在某个地方犯了一个错误而且我被卡住了.我已经尝试检查这篇文章中概述的元素,但网站在浏览器中跳得太快,让我无法理解发生了什么.

这个网站确实需要登录名和密码,但我相信在进入登录页面之前我犯了一个错误.

以下是网站的运作方式:

起始页应为:https://www.esds.ac.uk/secure/UKDSRegister_start.asp

此页面将自动将您的Web浏览器重定向到以以下内容开头的长URL: https://wayf.ukfederation.org.uk/DS002/uk.ds?[blahblahblah]

(1)由于某种原因,SSL证书在本网站上不起作用.这是我发布的有关此问题的SO问题.我使用的解决方法是忽略SSL:

library(httr)
set_config( config( ssl.verifypeer = 0L ) )
Run Code Online (Sandbox Code Playgroud)

然后我在起始网站上的第一个命令是:

z <- GET( "https://www.esds.ac.uk/secure/UKDSRegister_start.asp" )
Run Code Online (Sandbox Code Playgroud)

这给了我一个z$url看起来很像https://wayf.ukfederation.org.uk/DS002/uk.ds?[blahblahblah]我的浏览器也重定向的页面.

然后,在浏览器中,您应该输入"英国数据存档"并单击continue按钮.当我这样做时,它会将我重定向到网页https://shib.data-archive.ac.uk/idp/Authn/UserPassword

我认为这是我被困的地方,因为我无法弄清楚如何followlocation在这个网站上获得cURL 和土地.注意:尚未输入用户名/密码.

当我使用wayf.ukfederation.org.uk页面中的httr GET命令时,如下所示:

 y <- GET( z$url , query = list( combobox = "https://shib.data-archive.ac.uk/shibboleth-idp" ) )
Run Code Online (Sandbox Code Playgroud)

y$url字符串看起来很像z$url(除非它有一个下拉框=上年底).有没有办法通过RCurlhttr进入此uk data …

curl r web-scraping rcurl httr

19
推荐指数
1
解决办法
2355
查看次数

R - 如何使用rvest或rcurl点击网页

我想从这个网页下载数据

数据很容易被删除rvest.

代码可能是这样的:

library(rvest)
library(pipeR)
url <- "http://www.tradingeconomics.com/"
css <-     "#ctl00_ContentPlaceHolder1_defaultUC1_CurrencyMatrixAllCountries1_GridView1"

data <- url %>>%
  html() %>>%
  html_nodes(css) %>>%
  html_table() 
Run Code Online (Sandbox Code Playgroud)

但是像这样的网页存在问题.

有一个+按钮显示所有国家/地区的数据,但默认值只是50个国家/地区的数据.

因此,如果我使用代码,我可以抓取50个国家/地区的数据.

+按钮是在人的javascript,所以我想知道是否有在某种程度上R点击按钮,然后刮数据.

r web-scraping rcurl rvest

19
推荐指数
1
解决办法
7060
查看次数

如何在RCurl中使用cookie?

我正在尝试编写一个通过REST API访问某些数据的R包.但是,API不使用http身份验证,而是依赖cookie来保持会话的凭据.

本质上,我想用两个R函数替换bash脚本中的以下两行:一个用于执行登录,并存储会话cookie,第二个用于获取数据.

curl -X POST -c cookies.txt -d"username=xxx&password=yyy" http://api.my.url/login
curl         -b cookies.txt                               http://api.my.url/data
Run Code Online (Sandbox Code Playgroud)

我显然不明白RCurl如何使用curl选项.我现在的脚本有:

library(RCurl)
curl <- getCurlHandle()
curlSetOpt(cookiejar='cookies.txt', curl=curl)
postForm("http://api.my.url/login", username='xxx', password='yyy', curl=curl)
getURL('http://api.my.url/data", curl=curl)
Run Code Online (Sandbox Code Playgroud)

最终getURL()失败并显示"未登录".来自服务器的消息,并且在postForm()没有cookies.txt文件之后.

curl r rcurl

18
推荐指数
2
解决办法
7675
查看次数

用R读取ssl上的csv文件

现在整个世界都在努力使用SSL(这个决定很有意义)我们中的一些人使用github和相关服务来存储csv文件有一点挑战.从URL读取时,read.csv()函数不支持SSL.为了解决这个问题,我正在做一个小舞蹈,我喜欢称之为SSL歌舞伎舞蹈.我用RCurl抓取文本文件,将其写入临时文件,然后用read.csv()读取它.这样做有更顺畅的方法吗?更好的解决方案?

这是SSL kabuki的一个简单示例:

require(RCurl)
myCsv <- getURL("https://gist.github.com/raw/667867/c47ec2d72801cfd84c6320e1fe37055ffe600c87/test.csv")
temporaryFile <- tempfile()
con <- file(temporaryFile, open = "w")
cat(myCsv, file = con) 
close(con)

read.csv(temporaryFile)
Run Code Online (Sandbox Code Playgroud)

ssl r rcurl

18
推荐指数
4
解决办法
8593
查看次数

标签 统计

r ×10

rcurl ×10

curl ×4

httr ×3

ssl ×2

web-scraping ×2

asp.net ×1

github ×1

install.packages ×1

ip ×1

javascript ×1

linux ×1

rvest ×1

ssl-certificate ×1

tor ×1

xml ×1