我正在尝试将以下网址下载到 R 数据框中:
http://www.fantasypros.com/nfl/rankings/qb.php/?export=xls
(这是公共页面上的“导出”链接:http://www.fantasypros.com/nfl/rankings/qb.php/)
但是,我不确定如何“解析”数据?我还希望将其自动化并每周执行一次,因此任何有关如何将其构建为每周访问工作流程的想法将不胜感激!已经在 google 搜索和 stackoverflow 上搜索了几个小时了,但没有结果......:-)
谢谢你,
贾斯汀
尝试的代码:
getURL("http://www.fantasypros.com/nfl/rankings/qb.php?export=xls")
这只是给了我一个开头如下的字符串:
[1] "FantasyPros.com \t \nWeek 8 - QB Rankings \t \nExpert Consensus Rankings (ECR) \t \n\n Rank \t Player Name \tTeam \t Matchup \tBest Rank \t Worst Rank \t Ave Rank \t Std Dev \t\n1\tPeyton Manning\tDEN\t vs. WAS\t1\t5\t1.2105263157895\t0.58877509625419\t\t\n2\tDrew Brees\tNO\t vs. BUF\t1\t7\t2.6287878787879\t1.0899353819483\t\t\n3\tA...
首先 - 我知道这不是一个特定的代码问题,所以可以随意投票结束这个问题,但我今天花了大半天的时间来解决这个问题,可以使用一些帮助。我也认为这个线程可以帮助任何试图让 sftp 协议在 R 中工作的人,因为我将分享我今天所做的事情。
我一直在尝试更新 RCurl,使其支持 sftp 协议。在 R 中,我的协议看起来是这样(还有版本和主机):
> library(RCurl)
> curlVersion()$protocols
[1] "dict" "file" "ftp" "ftps" "gopher" "http" "https" "imap" "imaps" "ldap" "ldaps" "pop3" "pop3s" "rtsp" "smb" "smbs"
[17] "smtp" "smtps" "telnet" "tftp"
> curlVersion()$version
[1] "7.43.0"
> curlVersion()$host
[1] "x86_64-apple-darwin15.0"
Run Code Online (Sandbox Code Playgroud)
不是很好 - 没有 sftp 选项...
我按照这个线程 - http://andrewberls.com/blog/post/adding-sftp-support-to-curl - 在我的机器上更新 curl,并且部分成功。成功部分反映在我在命令行中运行以下内容时:
curl -V
curl 7.55.1 (x86_64-apple-darwin15.6.0) libcurl/7.55.1 zlib/1.2.5
libssh2/1.8.0
Release-Date: 2017-08-14
Protocols: dict file ftp gopher http imap ldap ldaps pop3 rtsp scp …Run Code Online (Sandbox Code Playgroud) 假设我有以下网址:
http://linkinghub.elsevier.com/retrieve/pii/S1755534516300379
当我将其输入到我的标准桌面浏览器时,我被重定向到:
http://www.sciencedirect.com/science/article/pii/S1755534516300379?via%3Dihub
但是,我无法在 R 中实现这一点。我尝试了 httr 和 RCurl 包。在httr的文档中,它说函数GET的使用如下:
library(httr)
GET("http://linkinghub.elsevier.com/retrieve/pii/S1755534516300379")
Run Code Online (Sandbox Code Playgroud)
应该会导致实际使用的网址(在任何重定向之后)。但是调用url时:
GET("http://linkinghub.elsevier.com/retrieve/pii/S1755534516300379")$url
Run Code Online (Sandbox Code Playgroud)
我没有得到最终的重定向。我非常感谢您的帮助!
我花了一天时间在互联网上搜索如何做到这一点的例子,但是我仍然在旋转,并且可以使用一点方向.我是html的新手,具有基本的R编码经验,并且对任何其他编码语言的经验很少.
我有一个500多个(可能更多)气象站的列表,我想从这个网站下载FW13格式的数据(https://fam.nwcg.gov/fam-web/kcfast/html/wxhmenu.htm).在浏览器中,您填写表单,提交表单,它将开始将FW13文件下载到我的默认下载文件夹.
我的目标是使用R填写html表单,提交它,然后接受将结果文件下载到定义的位置.表单本身由文本和单选按钮组成.以下是单个查询的示例:
站ID:020207
开课日期:2000-01-01
截止日期:2017-12-31
观察类型:每小时
计划选项:立即运行
我沿着RCurl和rvest包的兔子洞走下去,甚至开始试用rSelenium.我见过的大多数例子都是直接从网站上抓取信息,但我只想接受下载生成的文件.
如果我只能提交单个请求并下载单个文件,我相信我可以弄清楚如何使用站点ID列表来循环,以实现我所需要的.
我为没有任何示例代码而道歉.我所有的试验都是在黑暗中盲目拍摄,我甚至不确定我是否正在使用正确的包装来完成这项任务.任何帮助或方向非常感谢!
有没有办法在R会话中查看curl选项的当前设置?我的问题是我在代理后面并且必须设置连接的代理选项才能工作,并且在调用listMarts()函数后(来自biomaRt库,使用getURL())选项被更改(重置?)和尝试再次调用该函数时连接不起作用.所以我想看看调用函数之前和之后的选项.
设置我使用的选项:
options(RCurlOptions = list(proxy="gateway:port",
proxyuserpwd="domain\\username:password",
proxyauth="ntlm"))
Run Code Online (Sandbox Code Playgroud)
(当我调用选项()时,我可以看到这些选项的设置,但它们不是我感兴趣的设置,我想要RCurl选项)
有任何想法吗?感谢名单
我试图在R中检索SGX网站的价格.
myUrl="http://www.sgx.com/wps/portal/sgxweb/home/marketinfo/securities/etfs/!ut/p/c5/04_SB8K8xLLM9MSSzPy8xBz9CP0os3gjR0cTDwNnA0sDC3cLA0_XsDBfFzcPQ_dQQ6B8JJK8hZG7uYGnoVmgs2GIs7G3qwlJuv1DDYG6Q50CTZzCQg29Pc0I6PbzyM9N1S_IDY0od1RUBADjR8NU/dl3/d3/L2dBISEvZ0FBIS9nQSEh/"
x=readHTMLTable(myUrl,which="priceTableData")
Error in function (classes, fdef, mtable) : unable to find an inherited method for
function ‘readHTMLTable’ for signature ‘"NULL"’
Run Code Online (Sandbox Code Playgroud) 我是新手使用R发布表单然后从网上下载数据.我有一个问题可能很容易让那里的人发现我做错了什么,所以我感谢你的耐心等待.我有一台Win7 PC和Firefox 23.x是我的典型浏览器.
我正在尝试发布显示的主要表单
我有以下R脚本:
your.username <- 'username'
your.password <- 'password'
setwd( "C:/Users/Desktop/Aplia/data" )
require(SAScii)
require(RCurl)
require(XML)
agent="Firefox/23.0"
options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))
curl = getCurlHandle()
curlSetOpt(
cookiejar = 'cookies.txt' ,
useragent = agent,
followlocation = TRUE ,
autoreferer = TRUE ,
curl = curl
)
# list parameters to pass to the website (pulled from the source html)
params <-
list(
'userAgent' = agent,
'screenWidth' = "",
'screenHeight' = "",
'flashMajor' = "",
'flashMinor' …Run Code Online (Sandbox Code Playgroud) 我想从Google网络搜索中获取以下网址:
library(httr)
search.term="httr+package+daterange:%3A2456294-2456659"
url.name=paste0("https://www.google.com/search?q=",search.term)
url.get=GET(url.name)
url.content=content(url.get)
Run Code Online (Sandbox Code Playgroud)
然后尝试从结果中获取链接失败:
links <- xpathApply(url.content, "//h3//a[@href]", function(x) xmlAttrs(x)[[1]])
Error in UseMethod("xpathApply") :
no applicable method for 'xpathApply' applied to an object of class "XMLDocumentContent"
Run Code Online (Sandbox Code Playgroud)
从url.content中获取链接的最佳方法是什么?
我试图运行几个月前写的R脚本.我想下载在线信息,这就是我使用htmlToText函数的原因.即使我已经包含RCurl和XML包,R也找不到这个功能.
library(XML)
library(RCurl)
doc=htmlToText(link)
Error: could not find function "htmlToText"
Run Code Online (Sandbox Code Playgroud)
为什么会这样,我该如何解决错误?
最好的皮特
我已经使用freegeoip.net编写了以下简短代码,以实现IP地址的地理编码自动化(默认情况下每小时15,000个查询;优质的服务!):
> library(RCurl)
Loading required package: bitops
> ip.lst =
c("193.198.38.10","91.93.52.105","134.76.194.180","46.183.103.8")
> q = do.call(rbind, lapply(ip.lst, function(x){
try( data.frame(t(strsplit(getURI(paste0("freegeoip.net/csv/", x)), ",")[[1]]), stringsAsFactors = FALSE) )
}))
> names(q) = c("ip","country_code","country_name","region_code","region_name","city","zip_code","time_zone","latitude","longitude","metro_code")
> str(q)
'data.frame': 4 obs. of 11 variables:
$ ip : chr "193.198.38.10" "91.93.52.105" "134.76.194.180" "46.183.103.8"
$ country_code: chr "HR" "TR" "DE" "DE"
$ country_name: chr "Croatia" "Turkey" "Germany" "Germany"
$ region_code : chr "" "06" "NI" ""
$ region_name : chr "" "Ankara" "Lower Saxony" ""
$ city : …Run Code Online (Sandbox Code Playgroud)