Wert aus Webseite auslesen
ein freundliches Hallo an alle,
ich möchte einen Wert(Zählerstand Drucker) aus der Webseites des Gerätes auslesen. Bis jetzt habe ich es aber nur geschaft die Webseite aus zu lesen.
$objWebClient = (New-Object System.Net.WebClient)
$objWebClient.DownloadString("http://10.2.38.79/cgi-bin/dynamic/printer/config/reports/devicestatistics.html")
es wird mir dann Zeile für Zeile angezeigt.
Speicher ich alles in einer txt so wird dort der Zeilenumbruch nicht mitgeschrieben.
1. Frage: Wie kann ich eine TXT oder CSV mit Zeilenumbuch speichern
in Zeile 125 steht der Wert(2425) den ich benötige
<TR><td><p align="left" style="margin-left: 40;">Gesamt</p></td><td><p> 2425 </p></td>
2. Frage: Wie kann ich den Wert auslesen denn ich benötige
Danke schon mal im vorraus
ich möchte einen Wert(Zählerstand Drucker) aus der Webseites des Gerätes auslesen. Bis jetzt habe ich es aber nur geschaft die Webseite aus zu lesen.
$objWebClient = (New-Object System.Net.WebClient)
$objWebClient.DownloadString("http://10.2.38.79/cgi-bin/dynamic/printer/config/reports/devicestatistics.html")
es wird mir dann Zeile für Zeile angezeigt.
Speicher ich alles in einer txt so wird dort der Zeilenumbruch nicht mitgeschrieben.
1. Frage: Wie kann ich eine TXT oder CSV mit Zeilenumbuch speichern
in Zeile 125 steht der Wert(2425) den ich benötige
<TR><td><p align="left" style="margin-left: 40;">Gesamt</p></td><td><p> 2425 </p></td>
2. Frage: Wie kann ich den Wert auslesen denn ich benötige
Danke schon mal im vorraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 207607
Url: https://administrator.de/forum/wert-aus-webseite-auslesen-207607.html
Ausgedruckt am: 23.12.2024 um 17:12 Uhr
16 Kommentare
Neuester Kommentar
Hallo Gundelputz,
mit Regular Expressions und einer optimierten Funktion mit Group-Matching kannst du deinen gewünschten String extrahieren:
Grüße Uwe
mit Regular Expressions und einer optimierten Funktion mit Group-Matching kannst du deinen gewünschten String extrahieren:
Function Get-Matches($Pattern,$groupNumber = 0) {begin { $regex = New-Object Regex($pattern) };process { foreach ($match in ($regex.Matches($_))) { ([Object[]]$match.Groups)[$groupNumber].Value }}}
$string = Get-Content "C:\DeineTextdatei.txt"
$zaehler = $string | Get-Matches "Gesamt<\/p><\/td><td><p> ?(\d+) ?<\/p><\/td>" 1
Grüße Uwe
Da hast du den Code zu schnell kopiert ... war noch ein Fehler drin ... komme gerade vom Holz machen , da hat man noch zu dicke Finger ... jetzt gehts
Nochmal zum Verständnis:
Nochmal zum Verständnis:
1. Funktion für das Regular Expression Group-Matching
Diese Funktion braucht dich im Moment nicht sehr zu interessieren, diese behebt so manche Ungereimtheiten beim Umgang mit RegEx in der Powershell und erlaubt das einfache extrahieren von Teilen aus einem String. Aufgerufen wird die Funktion so $textInDemGesuchtWird | Get-Matches "[REGEX-Pattern]" [Regex-Groupnumber]function Get-Matches($Pattern,$groupNumber = 0) {
begin { $regex = New-Object Regex($pattern) }
process { foreach ($match in ($regex.Matches($_))) { ([Object[]]$match.Groups)[$groupNumber].Value } }
}
Lade die Seite mal neu ich glaube dein Browser hat noch den alten Cache geladen ....das ist noch der alte Code
und bitte benutze doch die Formatierungs-Codes für Programm-Code hier im Forum; siehe FAQ
und bitte benutze doch die Formatierungs-Codes für Programm-Code hier im Forum; siehe FAQ
Zitat von @Gundelputz:
der Syntax ?(\d+) wie darf ich denn verstehen oder besser gesagt wo finde ich im Handbuch die Erklärung dazu?
Das hier zu erläutern würde den Rahmen sprengen, zu Regular Expressions gibt es genug Tutorials im Netz z.B. hierder Syntax ?(\d+) wie darf ich denn verstehen oder besser gesagt wo finde ich im Handbuch die Erklärung dazu?
Zur Erläuterung [Leerzeichen]?(\d+)[Leerzeichen]? ,würde man es ausschreiben sähe das so aus:
Die andere Frage die ich mir stelle ist: wird das ergebnis 3x nach einnander ausgegeben? Und wie fange ich diese in seperaten
Variablen ab?
dazu muss das RegEx entsprechend dem Code angepasst werden, damit jeweils nur die entsprechende Stelle gematcht wird, das kann ich jetzt aber nur raten da dein HTML-Code hier nicht steht.Variablen ab?
Ein gutes Tool zum Anfangen mit RegEx-Patterns, ist das hier -> http://www.regexbuddy.com/