Ich habe viel gesucht, aber keine gute Lösung für mein Problem finden.R - Probleme bei der Analyse von JSON-Stream
Ich versuche, einige meiner Arbeit zu automatisieren und einige Daten von einer Website, die meine Firma verwendet, zu kratzen. (FYI - TOS scheint nicht zu zeigen, sie wollen nicht, falls jemand gekratzt werden fragen, also soll ich gut sein..)
Bisher habe ich den folgenden Code
library(devtools)
library(RSelenium)
library(XML)
library(rvest)
library(stringr)
library(dplyr)
library(knitr)
library(magrittr)
library(rjson)
library(stringi)
#login
appURL <- 'URL I Am accessing/'
pJS <- phantom()
remDr <- remoteDriver(browserName = "phantomjs")
remDr$open()
remDr$maxWindowSize()
remDr$navigate(appURL)
UN <- remDr$findElement(using = 'xpath', "//*[@id='login-form']/div[2]/div[2]/input")
UN$sendKeysToElement(list("Username"))
PW <- remDr$findElement(using = 'xpath', "//*[@id='login-form']/div[2]/div[3]/input")
PW$sendKeysToElement(list("password", key = "enter"))
URL <- 'URL of page with data'
remDr$navigate(URL)
Sys.sleep(2)
Source <- remDr$getPageSource()[[1]]
Text <- read_xml(Source,encoding = "", as_html = F, options = "NOBLANKS") %>%
xml_text(trim = T)
Text <- unlist(Text)
Auf diesem Punkt ich habe eine Menge von Text, die JSON enthält aber die JSON ist wie folgt organisiert:
event: optionCollection
id: 229
data: [{JSON}]
:
event: pageDescription
id: 230
data: [{JSON}]
:
event: dataTable.headerRows
id: 232
data: [{JSON}]
:
event: dataTable.dataRows
id: 233
data: [{JSON}]
Wo die JSON I muß die JSON Zusammenhang mit der Veranstaltung: dataTable.headerRows und dataTable.dataRows.
Es gibt normalerweise mehrere DataRows-Ereignisse, aus denen ich Daten extrahieren muss.
Kann jemand einen Vorschlag machen, wie man diese in R bekommt?
Offen für alle Vorschläge oder wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen.
Danke!
* Edit - Aktuellen Bibliotheken pro Anfrage hinzugefügt.
* Edit - @Parfait das ist, was zurückgegeben wird:
$event
[1] "report.finished"
$id
[1] "2277"
$data
[1] "{\"status\":1}"
$event
[1] "report.finished"
$id
[1] "2277"
$data
[1] "{\"status\":1}"
Dies erscheint nur in der tempfile.txt einmal so dass ich klar bin nicht, was das Problem verursacht, weil es der Code scheint sollte funktionieren. Hier
ist die schriftliche tmpfile mit den substituierten Daten für die Proben, die Sie in Ihrem Beitrag zur Verfügung gestellt:
https://1drv.ms/t/s!AlEviX19YBNogaZGAHCUCC_ZDEI5OA
Geben Sie bitte alle ' library() 'Linien, damit wir richtig reproduzieren können. – Parfait
@Parfait hinzugefügt Bibliothek(). Ich glaube nicht, dass ich all diese im Moment verwende –
ist 'Text' alle JSON, oder nur die Bits innerhalb der' [{JSON}] 'Abschnitt? Wenn es nicht alles JSON ist, welche Struktur ist das? – SymbolixAU