Ich versuche, Web-Daten mit einer Schleife zu kratzen und jede Instanz in ein anderes Blatt in derselben Excel-Datei zu schreiben. Ich habe das folgende Skript eingefügt. Die Blattnamen werden korrekt erstellt, aber derselbe Datenrahmen wird in beide Blätter geschrieben. Ich schätze jede Hilfe. Vielen Dank!Geschriebenes Web-Scrape zu Excel-Blättern schreiben
library(httr)
library(jsonlite)
library(tidyverse)
options(width=120)
xyz=c('"strStartDate": "2016-9-25", "strEndDate": "2016-11-1"','"strStartDate": "2016-8-25", "strEndDate": "2016-9-1"')
abc=c("2016-9-25","2016-8-25")
for (i in xyz){
for(j in abc){
ret <- fromJSON(content(POST("http://www.fangraphs.com/splitstool.aspx/getsplitleaders",
content_type_json(),
body = paste0('{"strPlayerId": "all", "strSplitArr": "[]", "strGroup": "season", "strPosition": "B", "strType": "1",',i,',"strSplitTeams": "false", "dctFilters": [], "strStatType": "player", "strAutoPt": "true"}')), as="text"))
df <- setNames(as_data_frame(ret$d$v), ret$d$k)
write.xlsx(df,"Slas.xlsx",append=TRUE,sheetName=j)}}
' "strType": "1", 'i'', ich denke du meinst ' "strType": "1", 'j''? Für jedes j-Blatt senden Sie die gleiche Anfrage mit dem i-Parameter – Jean
@waterling Ich könnte Missverständnis sein - aber mit dem i-Parameter, ich versuche, zwei separate Anfragen zu senden- "" strStartDate ": 2016-9-25 "," strEndDate ":" 2016-11-1 "und" strStartDate ":" 2016-8-25 "," strEndDate ":" 2016-9-1 ". Ich weiß, es ist sehr schlampig. –
Im Moment sehe ich, dass Sie 'j' nur für den Blattnamen verwenden. Es wird nicht beim Buchen der Anfrage verwendet. Da Sie die Anfrage UND schreiben auf das Blatt innerhalb der j-Schleife machen, hat sich die Anforderung nicht jedes Mal geändert (und somit hat sich auch die Antwort vom Server nicht geändert), wenn Sie in das Blatt geschrieben haben. – Jean