nick.b
Goto Top

Zahlen von Internetseite suchen und in txt-Datei speichern

Hallo,

Ich wollte auf der Internetseite XY einen Wort z.B. Preis suchen und die dahinterstehende Zahl in eine txt-Datei zu schreiben. Könnte ich dies mit einem Batch oder Powershell-Script schaffen oder muss ich da auf andere "Programmiersprachen" zurückgreifen.

In der Suche bin ich bis jetzt noch nicht so ganz fündig geworden...

MfG Nick

Content-ID: 360921

Url: https://administrator.de/forum/zahlen-von-internetseite-suchen-und-in-txt-datei-speichern-360921.html

Ausgedruckt am: 29.12.2024 um 01:12 Uhr

135185
135185 12.01.2018 aktualisiert um 15:39:27 Uhr
Goto Top
Zitat von @Nick.B:
Könnte ich dies mit einem Batch oder Powershell-Script schaffen
Ja, aber der Weg dorthin ist nicht immer gleich da jeder Quellcode anders aufgebaut ist.
Link posten oder hier gucken
Wert aus Quelltext einer HP lesen
Nick.B
Nick.B 12.01.2018 um 16:12:22 Uhr
Goto Top
Danke für die Anwort

https://coinmarketcap.com/
wäre die Seite von der ich verschiedene Preise auslesen möchte. Dies würde ich am liebsten in Euro (die Währung kann man auf der Seite oben rechts auswählen).

MfG Nick
135185
135185 12.01.2018 um 16:21:12 Uhr
Goto Top
Da suchst du dir besser eine andere Seite die Daten werden da dynamisch geladen und Sprache über Cookies gesetzt, der Aufwand lohnt nicht, gibt genügend andere Seiten die sich besser auslesen lassen.
colinardo
Lösung colinardo 12.01.2018 aktualisiert um 17:43:29 Uhr
Goto Top
Servus Nick,
als Powershell:
(Pfad zur Ausgabedatei in Zeile 1 anpassen. Abzufragende Preise im Array in Zeile 2 eintragen)
$export = 'D:\preise.csv'  
$currencies = 'bitcoin','ethereum'  
if ($PSVersionTable.PSVersion.Major -lt 3){write-host "ERROR: Minimum Powershell Version 3.0 is required!" -F Yellow; return}  
$content= irm -uri 'https://coinmarketcap.com' -Method Get  
$rate = [double]([regex]::match($content,'(?is)data-eur="([^"]+)"').Groups[1].Value)  
$currencies | %{
    $value = ([double]([regex]::match($content,"(?is)<tr id=`"id\-$_`".*?class=`"price`".*?data-usd=`"([^`"]+)`"").Groups[1].Value) / $rate)  
    [pscustomobject]@{'Name'=$_;'Preis(€)'=$value}  
} | export-csv $export -Delimiter ";" -NoType -Encoding UTF8  
Ausgabedatei kannst du direkt mit Excel öffnen.

screenshot

Da suchst du dir besser eine andere Seite die Daten werden da dynamisch geladen und Sprache über Cookies gesetzt, der Aufwand lohnt nicht, gibt genügend andere Seiten die sich besser auslesen lassen.
Wieso? Die Exchange-Rates stehen schon auf der Seite, einfach USD durch Wechselkurs teilen, fertig , cookie unnötig ... face-smile.


Schönes Wochenende
Grüße Uwe
Nick.B
Nick.B 12.01.2018 um 17:32:01 Uhr
Goto Top
Hallo Uwe,

Vielen Dank schonmal bis hier hin. Leider kommt bei mir, beim ausführen, folgende Fehlermeldung:

/ : Die Benennung "/" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren
Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und
wiederholen Sie den Vorgang. In C:\Preise auslesen.ps1:7 Zeichen:1

Da ich nicht oft genug mit Powershell arbeite habe ich leider keine Ahnung was mir die Fehlermeldung sagen soll.

MfG Nick
colinardo
Lösung colinardo 12.01.2018 aktualisiert um 17:37:13 Uhr
Goto Top
Aktuelle Powershell installieren (>=3.0) und Quelltext natürlich über den Quelltext-Link kopieren nicht hier markieren.
Nick.B
Nick.B 12.01.2018 um 18:10:06 Uhr
Goto Top
Danke jetzt klappt es...