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-Key: 360921

Url: https://administrator.de/contentid/360921

Printed on: April 26, 2024 at 19:04 o'clock

Mitglied: 135185
135185 Jan 12, 2018 updated at 14:39:27 (UTC)
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
Member: Nick.B
Nick.B Jan 12, 2018 at 15:12:22 (UTC)
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
Mitglied: 135185
135185 Jan 12, 2018 at 15:21:12 (UTC)
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.
Member: colinardo
Solution colinardo Jan 12, 2018 updated at 16:43:29 (UTC)
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
Member: Nick.B
Nick.B Jan 12, 2018 at 16:32:01 (UTC)
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
Member: colinardo
Solution colinardo Jan 12, 2018 updated at 16:37:13 (UTC)
Goto Top
Aktuelle Powershell installieren (>=3.0) und Quelltext natürlich über den Quelltext-Link kopieren nicht hier markieren.
Member: Nick.B
Nick.B Jan 12, 2018 at 17:10:06 (UTC)
Goto Top
Danke jetzt klappt es...