JavaScript auswerten

Gast #4022747
Ich möchte prinzipiell Daten von dieser Webseite in Variablen speichern.

Das Ergebnis wäre also etwas wie Variable Wert1 hat den Wert 324.09.

Ich möchte das gerne in Python, AppleScript oder Shell (Mac) machen. 
Meinetwegen auch über PHP, wenn das überhaupt geht.

Hat jemand eine Idee wie ich dieses JavaScript lesen und weiter 
verarbeiten kann?

Danke
1
<html>
2
  <head>
3
  </head>
4
  <body>   
5
    <script>
6
        document.write("Wert1: 324.09" );
7
    </script>
8
        <br>
9
    <script>
10
        document.write("Wert32: 4325");
11
    </script>
12
        <br>
13
    <script>
14
        document.write("Wert33: 734");
15
    </script>
16
        <br>
17
    <script>
18
        document.write("Wert9: 5342");
19
    </script> 
20
  </body>
21
</html>
Persönliche Seite #4022780
Das könnte in Python so aussehen:
1
from re import findall
2

3
script="""
4
<html>
5
  <head>
6
  </head>
7
  <body>   
8
    <script>
9
        document.write("Wert1: 324.09" );
10
    </script>
11
        <br>
12
    <script>
13
        document.write("Wert32: 4325");
14
    </script>
15
        <br>
16
    <script>
17
        document.write("Wert33: 734");
18
    </script>
19
        <br>
20
    <script>
21
        document.write("Wert9: 5342");
22
    </script> 
23
  </body>
24
</html>
25
"""
26

27
regex= r"(\w*): ([0-9|\.]*)?\""
28

29
results = findall(regex, script)
30

31
for i in results:
32
    print(i)

Geht aber so ähnlich in jeder beliebigen Programmiersprache, in der es 
reguläre Ausdrücke gibt.
Gast #4022783
Silvan König schrieb:
> Das könnte in Python so aussehen:

ich denke nicht das es wirklich die Lösung ist.

Schon wenn man schreibt

 document.write("PI=" + Math.PI);

versagt das script.


Ich würde vermutlich direkt den Browser nutzen, einfach in die Webseite 
noch ein extra Javascript einschleusen und dann mit dem JavaScript die 
fertige Seite Wieder auslesen und an einen Server schicken.
#4023412
Ich gebe es offen zu: Ich habe immer noch nicht so recht verstanden, was 
er denn nun eigentlich machen will.

Was sind die Eingangsdaten? In welcher Form genau liegen diese vor? Was 
soll das Ergebnis sein?

Am besten zurück auf Los, keine 4000 einziehen, und nochmal von vorn das 
Ganze. ;-)
Gast #4024955
Ich geb's ja zu, ich war selber nicht so sicher was ich genau machen 
will.

Es handelt sich um ein umfangreiches Script, das Werte berechnet und 
diese über eine Webseite ausgibt. document.write()

Ich brauche nur die Werte, deshalb habe ich nun eine weitere Variante 
ohne HTML angeschaut: JSC

Damit kann ich den JS Code direct ausführen ohne HTML. Nun habe ich aber 
das Problem, dass document.write nicht unterstützt wird.

Wie kann ich das Ergebnis nun im Shell ausgegeben?
Gast #4024973
print() ist die Lösung.

Nun hab eich noch den Code window.SunCalc = SunCalc;

Window kennt JSC aber nicht. Wie kann ich das ersetzen, bzw. was macth 
diese Zeile?
Gast #4024979
Hi louis,

louis schrieb:
> Ich geb's ja zu, ich war selber nicht so sicher was ich genau
> machen
> will.
>
> Es handelt sich um ein umfangreiches Script, das Werte berechnet und
> diese über eine Webseite ausgibt. document.write()
>
> Ich brauche nur die Werte, deshalb habe ich nun eine weitere Variante
> ohne HTML angeschaut: JSC
>
> Damit kann ich den JS Code direct ausführen ohne HTML. Nun habe ich aber
> das Problem, dass document.write nicht unterstützt wird.

Ich kenne mich mit JSC nicht aus, aber vielleicht kannst Du eine eigene 
"document"-Klasse mit einer Methode "write()" schreiben? Das Teil muß ja 
nicht mehr können, als die einzelnen Aufrufe der write()-Methode in ein 
Array zu speichern.

HTH,
Karl
Gast #4025009
Danke, mit print() klappt die Ausgabe im Shell.

Was ich nicht verstehe ist, was dieser Code macht:
1
// export as AMD module / Node module / browser variable
2
if (typeof define === 'function' && define.amd) define(SunCalc);
3
else if (typeof module !== 'undefined') module.exports = SunCalc;
4
else window.SunCalc = SunCalc;

window.SunCalc versteht JSC nicht und bricht deswegen ab. Ich würde den 
Code deshalb gerne mit etwas kompatiblen ersetzen.
Gast #4025030
louis schrieb:
> Was ich nicht verstehe ist, was dieser Code macht:

Kompatibilitäts Boilerplate Copy&Paste snippet, damit derselbe JS-Code 
sowohl client-Seitig (also im Browser) als auch Server-Seitig (z.B. mit 
node.js) laufen kann.

Wenn das Modul deine ganze Berechnung macht:
Nimm gleich node.js und mach die Berechnung darin, ganz ohne virtuelle 
Webbrowser und anderes gehackse.
Gast #4025039
Falls möglich würde ich gerne auf zusätzliche Software verzichten. Kann 
ich den Code denn nicht irgendwie ersetzen? Der ganze Rest funktioniert 
ja, es gibt lediglich kein Fenster auf das referenziert werden kann.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.