Finaler Content aus scriptgenerierter Webseite auslesen
Hallo Community,
ich soll für meinen Chef eine automatisierte Auswertung erstellen. Als Datenquelle ist mir nur ein intranetseitig verfügbares Webdokument gegeben, welches auf KIBANA basiert.
Idealerweise sollte dies mittels Linux-Shell als Script realisiert werden, aber es muss nicht zwangsweise per Shell realisiert werden.
Leider aber erhalte ich bsi jetzt nicht, wie gewünscht, den HTML Code zuurück, der die Ergebnisseite produziert. Viel mehr sehe ich wie im HTML Code Scripts aufgerufen werden, die wohl den finalen Content erzeugen.
Allerdings würde ich eben gerne diesen finalen Content in eine Variable ziehen und nicht die content-generierenden Scriptaufrufe.
Bis jetzt habe ich folgendes vergeblich versucht:
Den eigentlichen HTML Code, der den sichtbaren Inhalt erzeugt, konnte ich bis jetzt nur mit dem FireFox PlugIn "Webdeveloper" sehen. Allerdings ist es keine Lösung diesen manuell abzukopieren. Man müsste diese Ansicht des Firefox per Befehl auslesen können, was wohl kaum möglich ist....
Da dies auf einer Windowsmaschine entwickelt wird (Linux Bash ist nur via CYGwin vorhanden), wäre zB auch Excel oder Powerscript eine mögliche Basis zur Umsetzung.
Vielleicht hat ja jemand einen Tip für mich.
ich soll für meinen Chef eine automatisierte Auswertung erstellen. Als Datenquelle ist mir nur ein intranetseitig verfügbares Webdokument gegeben, welches auf KIBANA basiert.
Idealerweise sollte dies mittels Linux-Shell als Script realisiert werden, aber es muss nicht zwangsweise per Shell realisiert werden.
Leider aber erhalte ich bsi jetzt nicht, wie gewünscht, den HTML Code zuurück, der die Ergebnisseite produziert. Viel mehr sehe ich wie im HTML Code Scripts aufgerufen werden, die wohl den finalen Content erzeugen.
Allerdings würde ich eben gerne diesen finalen Content in eine Variable ziehen und nicht die content-generierenden Scriptaufrufe.
Bis jetzt habe ich folgendes vergeblich versucht:
links -dump -html-target-in-new-window 1 "https://x.yz" > result.txt
<?php
$homepage = file_get_contents(https://x.yz")
echo homepage
?>
Den eigentlichen HTML Code, der den sichtbaren Inhalt erzeugt, konnte ich bis jetzt nur mit dem FireFox PlugIn "Webdeveloper" sehen. Allerdings ist es keine Lösung diesen manuell abzukopieren. Man müsste diese Ansicht des Firefox per Befehl auslesen können, was wohl kaum möglich ist....
Da dies auf einer Windowsmaschine entwickelt wird (Linux Bash ist nur via CYGwin vorhanden), wäre zB auch Excel oder Powerscript eine mögliche Basis zur Umsetzung.
Vielleicht hat ja jemand einen Tip für mich.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 359904
Url: https://administrator.de/contentid/359904
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
2 Kommentare
Neuester Kommentar
Servus,
das ist möglich, doch dazu musst du eine Instanz her nehmen die den Inhalt also die Skripte ausführt und dann den generierten Inhalt der Seite auslesen.
Möglich ist das wie immer mit dem IE-COM-Object, simples Beispiel (Powershell):
Von Mozilla gibt es auch noch eine Bibliothek die eine skriptbare Browserinstanz zur Verfügung stellt bei welcher nachträglich gerenderter Content abgerufen werden kann. Nennt sich GeckoFX.
Grüße Uwe
das ist möglich, doch dazu musst du eine Instanz her nehmen die den Inhalt also die Skripte ausführt und dann den generierten Inhalt der Seite auslesen.
Möglich ist das wie immer mit dem IE-COM-Object, simples Beispiel (Powershell):
# Neuen IE-Prozess erzeugen
$i = New-Object -Com InternetExplorer.Application
# Fenster sichtbar machen (kein Muss kann später unsichtbar laufen)
$i.Visible = $true
# Webseite aufrufen
$i.Navigate("http://site.de")
while($i.Busy){sleep .3}
# Zusätzlichen sleep einbauen damit dynmaischer Content nachgeladen werden kann
sleep 1
# irgendein DOM-Object auslesen
$i.document.getElementById('global-login-field').value
# Browser beenden
$i.Quit()
# COM ressourcen freigeben
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($i)
Grüße Uwe
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen, und Lösungen markieren. Merci.