2017-09-10 2 views
0

Ich möchte eine .csv-Datei von https://www.fantasysharks.com/apps/bert/forecasts/projections.php herunterladen? das ist direkt gebunden die Eingabe-Einstellungen (ist kein statischer Download-Link) und laden Sie es in R. Nachdem die Drop-Boxen ausgefüllt sind, müssen Sie dann auf den Download .csv-Taste klicken. Ich habe dieses Using R to "click" a download file button on a webpage gefunden, das ein wenig beschreibt, wie man es mit POST macht, aber ich bin nicht in der Lage, es mit einigen Modifikationen zu diesem Code zu arbeiten. Ich habe diesen Code versucht:R Laden Sie die .csv-Datei herunter, die an Eingabefelder und einen "Klick" -Button gebunden ist

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 

aber kommt mit dem Fehler auf:

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> 
+0

Sie sollten wahrscheinlich "Code of Conduct" Abschnitt auf https://www.fantasysharks.com/terms-of-use/ lesen – hrbrmstr

Antwort

1

Hier ist ein einfacher Weg, um eine CSV von einer URL zu erhalten:

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)) 

Zuerst Setzen Sie die Parameter in verschiedene Variablen, die Sie später verwenden werden, um den Download-Link mit sprintf zu generieren. Dann verwenden Sie die Funktion url, um die Datei von der generierten URL herunterzuladen und schließlich die Datei mit read.csv zu lesen.

Verwandte Themen