Moin moin,
ich versuche von einer Seite Informationen abzugreifen.
Eine CSV Datei enthält einzelne Nummern, die mit einem SpreadsheetUrlDownload an die Basis-URL angefügt werden. Die Seite antwortet mit HTML, unter Anderem auch mit JSON. Dieses lese ich mit dem HTMLWriter und möchte es dann mit einem HTML2Spreadsheet Step parsen.
Leider komme ich aber genau hier nicht weiter. Mich interessiert das Feld „extartnr“ in der Antwort. Ich habe die Antwort dem Post hier angefügt.
Den Ganzen HTML Code bei dem umschließenden Script-Tag splitten und den 2. Teil nehmen (Index 1), wieder splitten (schließendes script Tag) und hier aber den ersten Teil (Index 0) nehmen. So solltest du nur den JSON Inhalt bekommen den du als JSON einlesen und parsen kannst.
Der Fehler ist bei beiden gleich: The type of a value differs from what was expected. (Root Causes: NonStringOrTemplateOutputException: For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to a sequence (wrapper: f.t.SimpleSequence): ==> TEMPLATE_OUTPUT_STRING@SpreadsheetHTMLWriter_8!?split('<script type="application/vnd.popscan.page-data+json" data-store="react-components">')[1]?split('</script>'[0]) [in template "HTML2Spreadsheet" at line 1, column 4] ---- FTL stack trace ("~" means nesting-related): - Failed at: ${TEMPLATE_OUTPUT_STRING@SpreadsheetH... [in template "HTML2Spreadsheet" at line 1, column 2] ----)
bzw.
The type of a value differs from what was expected. (Root Causes: NonStringOrTemplateOutputException: For "${...}" content: Expected a string or something automatically convertible to string (number, date or boolean), or "template output" , but this has evaluated to a sequence (wrapper: f.t.SimpleSequence): ==> output@SpreadsheetHTMLWriter_8!?split('<script type="application/vnd.popscan.page-data+json" data-store="react-components">')[1]?split('</script>'[0]) [in template "HTML2Spreadsheet" at line 1, column 3] ---- FTL stack trace ("~" means nesting-related): - Failed at: ${output@SpreadsheetHTMLWriter_8!?spl... [in template "HTML2Spreadsheet" at line 1, column 1] ----)
Selbst wenn ich im HTML2Spreadsheet über das + nur ${output@SpreadsheetHTMLWriter_8!} auswähle, kommen keine Daten an.
meine Idee war für HTML Code gedacht der so direkt aus einem Step kommt. Das selbe kannst du aber auch in einem Spreadsheet machen. Da musst du dann aber die Spalte anstatt, wie in meinem Beispiel, des Step-Outputs nehmen. Alternativ könntest du im TextHTMLWriter auch über alle Zeilen iterieren und pro Zeile den JSON Text extrahieren. Einfacher ist es aber im Mapper.
${SPALTENNAME8!?split(‚‘[0])}
Wenn die Daten aber aus dem SpreadsheetUrlDownload kommen brauchst du den HTML2Spreadsheet nicht. nimm die Response aus dem API Call und verarbeite die wie in meinem Beispiel beschrieben.