标签: rcurl

登录网站使用RCurl获取数据

我想使用RCurl登录网站并从网上获取数据(没有登录就无法看到数据.)

我想导出这个(例如)" http://www.appannie.com/app/ios/instagram/ranking/history/chart_data/?s=2010-10-06&e=2012-06-04&c=143441&f=ranks&d在我使用RCurl登录后,= iphone "进入R".问题是我无法使用RCurl登录.我之前没有尝试过,所以大多数时候我都提到了http://www.omegahat.org/RCurl/philosophy.html.

所以这就是我的尝试.(这里,'me@gmail.com'是我的用户ID,'9999'是我的密码 - 我刚刚完成了.)

library(RJSONIO)
library(rjson)
library(RCurl)
appannie <- getURL("http://www.appannie.com/app/ios/instagram/ranking/history/chart_data/.json?s=2010-10-06&e=2012-06-04&c=143441&f=ranks&d=iphone, userpwd = me@gmail.com:9999", verbose = TRUE)
Run Code Online (Sandbox Code Playgroud)

但这给了我以下信息:

About to connect() to www.appannie.com port 80 (#0)
*   Trying 69.167.138.64... * connected
* Connected to www.appannie.com (69.167.138.64) port 80 (#0)
> GET /app/ios/instagram/ranking/history/chart_data/?s=2010-10-06&e=2012-06-04&c=143441&f=ranks&d=iphone HTTP/1.1
Host: www.appannie.com
Accept: */*

< HTTP/1.1 403 FORBIDDEN
< Server: nginx/1.1.19
< Date: Fri, 01 Mar 2013 23:41:32 GMT
< Content-Type: text/html; charset=utf-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< …
Run Code Online (Sandbox Code Playgroud)

login r rcurl web

7
推荐指数
1
解决办法
3487
查看次数

在RCurl中创建一个C级文件句柄,用于编写下载的文件

在RCurl中,CFILE定义了一个函数和一个类来处理C级文件句柄.从手册:

目的是能够将这些作为选项传递给libcurl,以便它可以从文件读取或写入文件.我们也可以使用R连接执行此操作并指定操作这些连接的回调函数.但是对于大型文件来说,使用C级文件句柄的速度可能会快得多.

没有与下载相关的示例,所以我试过:

library(RCurl)
u = "http://cran.r-project.org/web/packages/RCurl/RCurl.pdf"
f = CFILE("RCurl.pdf", mode="wb")
ret= getURL(u,  write = getNativeSymbolInfo("R_curl_write_binary_data")$address,
                file  = f@ref)
Run Code Online (Sandbox Code Playgroud)

我也尝试用替换file选项writedata = f@ref.该文件已下载但已损坏.为write参数编写自定义回调仅适用于非二进制数据.

有没有想过在RCurl中将二进制文件直接下载到磁盘(不加载到内存中)?

curl r rcurl

7
推荐指数
1
解决办法
786
查看次数

使用RCurl(或任何其他方法)从FTP下载.RData和.csv文件

我已经将.RData文件(使用创建save())上传到ftp服务器,我正在尝试使用getURL()来下载同一个文件.对于我读过的所有示例和帖子,我似乎无法让它工作.

使用以下命令保存.RData文件:

save(results, file=RDataFilePath, compress="xz") #save object "results" w/ compression
#RDataFilePath is the location of the results.RData file on my harddrive
Run Code Online (Sandbox Code Playgroud)

这些数据使用以下方式上载

uploadURL <-"ftp://name:password@host/folder/results.RData" #name the url
ftpUpload(RDataFilePath, to=uploadURL, connecttimeout=120) #upload
Run Code Online (Sandbox Code Playgroud)

这就是我尝试下载results.RData的方法getURL:

downloadURL <- "host/folder/results.RData"
load(getURL(downloadURL, userpwd="name:password", connecttimeout=120))
Run Code Online (Sandbox Code Playgroud)

这给出了以下错误:

Error in curlPerform(curl = curl, .opts = opts, .encoding = .encoding) : 
  embedded nul in string: 'ý7zXZ'
Run Code Online (Sandbox Code Playgroud)

当我将downloadURL字符串粘贴到我的浏览器中时,.RData文件立即下载,所以我知道没有拼写错误.错误消息表明url无法读取压缩格式的b/c; 但是,当我使用save()w/o压缩时,我收到类似的错误消息.

尝试从FTP下载.csv时,我也收到错误消息:

read.csv(getURL(downloadURL1)) #downloadURL1 is similar to downloadURL, but points to the .csv file
Error …
Run Code Online (Sandbox Code Playgroud)

ftp r download rcurl

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

错误设置证书验证位置,install_github

我正在尝试从github安装一个包,但是当我使用时我一直收到错误install_github.

library(devtools)
install_github(repo="swirl", username="ncarchedi")
Installing github repo(s) swirl/master from ncarchedi
Downloading swirl.zip from https://github.com/ncarchedi/swirl/archive/master.zip
Error in function (type, msg, asError = TRUE)  : 
  error setting certificate verify locations:
  CAfile: /Library/Frameworks/R.framework/Versions/3.0/Resources/library/RCurl/CurlSSL/cacert.pem
  CApath: none

我试图安装几个不同的包(包括ggmap的更新版本),我总是得到相同的错误.它必须与RCurl有关,但我不明白问题是什么,或者如何解决它.我有devtools(版本1.3)和RCurl(版本1.95-4.1).我在mac上运行R版本3.0.1("Good Sport").

结果来自 sessionInfo()

sessionInfo()
R version 3.0.1 (2013-05-16)
Platform: x86_64-apple-darwin10.8.0 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

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

other attached packages:
[1] RCurl_1.95-4.1 bitops_1.0-5   devtools_1.3  

loaded via a namespace (and not attached):
[1] digest_0.6.3   evaluate_0.4.3 httr_0.2       memoise_0.1    parallel_3.0.1 …

installation r github devtools rcurl

7
推荐指数
2
解决办法
7666
查看次数

RCurl和自签名证书问题

我在使用RCurl函数getURL访问使用自签名证书的服务器上的HTTPS URL 时遇到问题.我在Mac OS X 10.9.2上运行R 3.0.2.

我已经阅读了有关该主题的常见问题解答卷曲页面.所以这就是我的立场:

  1. 我已将证书的副本保存到磁盘(〜/ cert.pem).
  2. 我已经能够使用这个相同的文件使用python-requests和'verify'选项连接到服务器,并且成功了.
  3. 命令行上的curl似乎忽略了--cacert选项.在使用Mac OS X"Keychain Access"应用程序将证书标记为受信任之后,我成功访问了该网站.
  4. RCurl顽固地拒绝使用以下代码连接到该网站:

    getURL(" https://somesite.tld ",verbose = T,cainfo = normalizePath("〜/ cert.pem"))

这是我得到的输出:

* Adding handle: conn: 0x7f92771b0400
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 38 (0x7f92771b0400) send_pipe: 1, recv_pipe: 0
* About to connect() to somesite.tld port 443 (#38)
*   Trying 42.42.42.42...
* Connected to somesite.tld (42.42.42.42) port 443 …
Run Code Online (Sandbox Code Playgroud)

macos ssl curl r rcurl

7
推荐指数
1
解决办法
3046
查看次数

使用ggplot绘制大量时间序列.有可能加快速度吗?

我正在处理数千个气象时间序列数据(样本数据可以从这里下载) https://dl.dropboxusercontent.com/s/bxioonfzqa4np6y/timeSeries.txt

在我的Linux Mint PC(64位,8GB RAM,双核2.6 GHz)上使用ggplot2绘制这些数据耗费了大量时间.我想知道是否有办法加快速度或更好地绘制这些数据?非常感谢您的任何建议!

这是我现在使用的代码

##############################################################################
#### load required libraries        
library(RCurl)
library(dplyr)    
library(reshape2)
library(ggplot2)

##############################################################################
#### Read data from URL
dataURL = "https://dl.dropboxusercontent.com/s/bxioonfzqa4np6y/timeSeries.txt"
tmp <- getURL(dataURL)
df <- tbl_df(read.table(text = tmp, header=TRUE))
df

##############################################################################
#### Plot time series using ggplot2
# Melt the data by date first
df_melt <- melt(df, id="date")
str(df_melt)

df_plot <- ggplot(data = df_melt, aes(x = date, y = value, color = variable)) +
  geom_point() +
  scale_colour_discrete("Station #") +
  xlab("Date") +
  ylab("Daily Precipitation [mm]") …
Run Code Online (Sandbox Code Playgroud)

performance r time-series ggplot2 rcurl

7
推荐指数
1
解决办法
2975
查看次数

如何在R中发布简单的HTML表单?

我对R编程比较陌生,我试图将我在Johns Hopkins数据科学专业中学到的一些东西用于实际应用.具体来说,我想自动化从美国财政部网站下载历史债券价格的过程

使用Firefox和R,我能够确定美国财政部网站使用非常简单的HTML POST表单来指定感兴趣的报价的单个日期.然后返回所有未偿债券的二级市场信息表.

我没有尝试使用两个不同的R包来向美国财政部Web服务器提交请求.野兔是我尝试过的两种方法:

尝试#1(使用RCurl):

url <- "https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm"
td.html <- postForm(url,
                    submit = "Show Prices",
                    priceDate.year  = 2014,
                    priceDate.month = 12,
                    priceDate.day   = 15,
                   .opts = curlOptions(ssl.verifypeer = FALSE))
Run Code Online (Sandbox Code Playgroud)

这导致返回并存储的网页,td.html但它包含的是来自treasurydirect服务器的错误消息.我知道服务器正在运行,因为当我通过浏览器提交相同的请求时,我得到了预期的结果.

尝试#2(使用rvest):

s <- html_session(url)
f0 <- html_form(s)
f1 <- set_values(f0[[2]], priceDate.year=2014, priceDate.month=12, priceDate.day=15)
test <- submit_form(s, f1)
Run Code Online (Sandbox Code Playgroud)

不幸的是,这种方法甚至不会留下R并导致来自R的以下错误消息:

Submitting with 'submit'
Error in function (type, msg, asError = TRUE)  : <url> malformed
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚如何查看正在发送给rvest的"格式错误"的文本,以便我可以尝试诊断问题.

任何建议或提示解决这个看似简单的任务将不胜感激!

html post r rcurl rvest

7
推荐指数
1
解决办法
4833
查看次数

网络搜索R中的交互式aspx网站

我试图从交互式aspx网页webscrape表.我已经阅读了所有关于堆栈的R webscraping问题,我想我已经接近了,但我似乎无法得到它.

我想从这里生成的表中提取数据.最终我想循环遍历每个日期和状态选项,但我的挑战实际上只是到R提交我的参数并为任何特定查询拉入结果表.

根据我收集的内容,答案可能涉及RCurl和XML包,使用我的参数发布"表单",然后读取结果页面的html.

我最近的努力看起来像这样:

library(RCurl)
library(XML)

curl = getCurlHandle()

link = "http://indiawater.gov.in/IMISReports/Reports/WaterQuality/rpt_WQM_HabitationWiseLabTesting_S.aspx"

html = getURL(link, curl = curl)

params = list('ctl00$ContentPlaceHolder$ddFinYear' = '2005-2006',
              'ctl00$ContentPlaceHolder$ddState' = 'BIHAR')

html2 = postForm(link, .params = params, curl = curl)

table = readHTMLTable(html2 )
Run Code Online (Sandbox Code Playgroud)

我真的很难说我遇到了什么问题.一方面html == html2产生错误,所以我认为html2在提交表单后已经进展到某个点,但是如果表单提交不正确或者如果有效并且它的读数是那张桌子没用.

任何建议和帮助表示赞赏.谢谢!

r web-scraping rcurl

7
推荐指数
1
解决办法
751
查看次数

使用R登录.NET站点

我正在尝试使用我的凭据登录到.NET站点但无法使其正常工作.我的代码受到以下主题的启发

如何使用R登录然后从aspx网页下载文件

library(RCurl)
curl = getCurlHandle()
curlSetOpt(cookiejar = 'cookies.txt', followlocation = TRUE, autoreferer = TRUE, curl = curl)
html <- getURL('http://www.aceanalyser.com/Login.aspx', curl = curl)
viewstate <- as.character(sub('.*id="__VIEWSTATE" value="([0-9a-zA-Z+/=]*).*', '\\1', html))
viewstategenerator <- as.character(sub('.*id="__VIEWSTATEGENERATOR" value="([0-9a-zA-Z+/=]*).*', '\\1', html))

params <- list(
  'txtUserID'    = '********',
  'txtPwd'    = '*******',
  'Btn_Login' = 'GO',
  '__VIEWSTATE' = viewstate,
  '__VIEWSTATEGENERATOR' = viewstategenerator,
  'HiddenField1' = '1280',
  'HiddenField2' = '700',
  'Hdn_Pwd' = 'true')

html = postForm('http://www.aceanalyser.com/Login.aspx', .params = params, curl = curl)
grepl('Logout', html)
Run Code Online (Sandbox Code Playgroud)

结果:FALSE

请帮我理解这个问题

r rcurl httr

7
推荐指数
1
解决办法
389
查看次数

如何使用R从需要cookie的SSL页面下载压缩文件

我正在尝试从https页面下载文件,该页面需要按"我同意"按钮然后存储cookie.如果这个答案在某个地方显而易见,我道歉

当我直接在Chrome中打开网页并单击"我同意"时,文件开始自动下载.

http://www.icpsr.umich.edu/cgi-bin/bob/zipcart2?path=SAMHDA&study=32722&bundle=delimited&ds=1&dups=yes

我试图复制这个例子,但我不认为hangseng网站实际上存储了cookie /身份验证,所以我不知道这个例子是否应该是我需要的.

除此之外,我认为SSL使身份验证变得复杂,因为我认为getURL()调用将需要证书规范,如cainfo = system.file("CurlSSL","cacert.pem",package ="RCurl"))

我太过RCurl的初学者了解这个网站是否相当困难,或者我是否只是遗漏了一些明显的东西.

谢谢!

r web-scraping rcurl

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

标签 统计

r ×10

rcurl ×10

curl ×2

web-scraping ×2

devtools ×1

download ×1

ftp ×1

ggplot2 ×1

github ×1

html ×1

httr ×1

installation ×1

login ×1

macos ×1

performance ×1

post ×1

rvest ×1

ssl ×1

time-series ×1

web ×1