首页 文章

R下载.csv文件绑定到输入框和“单击”按钮

提问于
浏览
0

我试图从https://www.fantasysharks.com/apps/bert/forecasts/projections.php下载.csv文件?直接绑定输入设置(不是静态下载链接)并将其加载到R.填写下拉框后,您必须单击下载.csv按钮 . 我发现这个Using R to "click" a download file button on a webpage详细说明了如何使用POST进行操作,但我无法让它对该代码进行一些修改 . 我试过这段代码:

library(httr)
library(rvest)
library(purrr)
library(dplyr)

POST("https://www.fantasysharks.com/apps/bert/forecasts/projections.php",
 body = list('League'=-1, 'Position'=1, 'scoring'=16, 'Segment'=596,  'uid'=4),
 encode = "form") -> res
res

但提出错误:

Response [https://www.fantasysharks.com/apps/bert/forecasts/projections.php]
  Date: 2017-09-10 15:44
  Status: 406
  Content-Type: text/html; charset=iso-8859-1
  Size: 286 B
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>406 Not Acceptable</title>
</head><body>
<h1>Not Acceptable</h1>
<p>An appropriate representation of the requested resource /apps/bert/forecasts/projections.php could not be found on t...
</body></html>

1 回答

  • 1

    以下是从URL获取CSV的更简单方法:

    segment <- 596
    position <- 1
    scoring <- 16
    league <- -1
    uid <- 4
    csv_url <- sprintf("https://www.fantasysharks.com/apps/bert/forecasts/projections.php?csv=1&Segment=%s&Position=%s&scoring=%s&League=%s&uid=%s",segment,position,scoring,league,uid)
    res <- read.csv(url(csv_url))
    

    首先,将参数设置为不同的变量,稍后您将使用这些变量生成 sprintf 的下载链接 . 然后使用 url 函数从生成的URL下载文件,最后使用 read.csv 读取文件 .

相关问题