HTML-Seiten öffnen und bestimmte Daten auslesen
Hallo,
ich möchte hintereinander verschiedene HTML-Seiten hintereinander per IP-Adresse aufrufen, bestimmte Daten daraus auslesen und diese Daten dann lokal auf meinem Rechner speichern.
Vielleicht weiß ja jemand, ob bzw. wie das per Batch möglich ist...
Beispiel (IP-Adressen für Seitenaufruf):
192.168.17.240
192.168.17.241
192.168.18.243
192.168.19.245
Quellcode/ Inhalt der Seite: 192.168.17.240 (Auszug):
...
<TD valign="top" align="left">Terminal #: </TD>
<TD valign="top" align="left"><FONT FACE="Courier New, Courier, Monospaced">2866247 </FONT></TD></TR>
<TR><TD valign="top" align="left"> </TD
...
<TD valign="top" align="left">MAC Adr.: </TD>
<TD valign="top" align="left"><FONT FACE="Courier New, Courier, Monospaced">08:15:28:60:47:50</FONT></TD></TR>
<TR><TD valign="top" align="left"> </TD>
...
<TD valign="top" align="left">Terminal (IPA): </TD>
<TD valign="top" align="left"><FONT FACE="Courier New, Courier, Monospaced">192.168.17.240</FONT></TD></TR>
<TR><TD valign="top" align="left"> </TD>
<TD valign="top" align="left">IP-Maske: </TD>
<TD valign="top" align="left"><FONT FACE="Courier New, Courier, Monospaced">255.255.255.0</FONT></TD></TR>
<TR><TD valign="top" align="left"> </TD>
<TD valign="top" align="left">Gateway (IPA): </TD>
<TD valign="top" align="left"><FONT FACE="Courier New, Courier, Monospaced">192.168.17.1</FONT></TD></TR>
<TR><TD valign="top" align="left"> </TD>
...
Benötigt werden nur die u.a. Daten in einer Datei in folgendem Format (Beispiel):
2866247 ;08:15:28:60:47:50;192.168.17.240;255.255.255.0;192.168.17.1
2866248 ;08:15:29:70:48:50;192.168.17.241;255.255.255.0;192.168.17.1
usw.
Vielen Dank und Gruß
Markus
ich möchte hintereinander verschiedene HTML-Seiten hintereinander per IP-Adresse aufrufen, bestimmte Daten daraus auslesen und diese Daten dann lokal auf meinem Rechner speichern.
Vielleicht weiß ja jemand, ob bzw. wie das per Batch möglich ist...
Beispiel (IP-Adressen für Seitenaufruf):
192.168.17.240
192.168.17.241
192.168.18.243
192.168.19.245
Quellcode/ Inhalt der Seite: 192.168.17.240 (Auszug):
...
<TD valign="top" align="left">Terminal #: </TD>
<TD valign="top" align="left"><FONT FACE="Courier New, Courier, Monospaced">2866247 </FONT></TD></TR>
<TR><TD valign="top" align="left"> </TD
...
<TD valign="top" align="left">MAC Adr.: </TD>
<TD valign="top" align="left"><FONT FACE="Courier New, Courier, Monospaced">08:15:28:60:47:50</FONT></TD></TR>
<TR><TD valign="top" align="left"> </TD>
...
<TD valign="top" align="left">Terminal (IPA): </TD>
<TD valign="top" align="left"><FONT FACE="Courier New, Courier, Monospaced">192.168.17.240</FONT></TD></TR>
<TR><TD valign="top" align="left"> </TD>
<TD valign="top" align="left">IP-Maske: </TD>
<TD valign="top" align="left"><FONT FACE="Courier New, Courier, Monospaced">255.255.255.0</FONT></TD></TR>
<TR><TD valign="top" align="left"> </TD>
<TD valign="top" align="left">Gateway (IPA): </TD>
<TD valign="top" align="left"><FONT FACE="Courier New, Courier, Monospaced">192.168.17.1</FONT></TD></TR>
<TR><TD valign="top" align="left"> </TD>
...
Benötigt werden nur die u.a. Daten in einer Datei in folgendem Format (Beispiel):
2866247 ;08:15:28:60:47:50;192.168.17.240;255.255.255.0;192.168.17.1
2866248 ;08:15:29:70:48:50;192.168.17.241;255.255.255.0;192.168.17.1
usw.
Vielen Dank und Gruß
Markus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 305794
Url: https://administrator.de/contentid/305794
Ausgedruckt am: 08.11.2024 um 07:11 Uhr
1 Kommentar
Hallo Markus,
ich würde hier eher zu einer anderen Scriptsprache greifen z.B. Powershell, Batch ist für sowas eher ungeeignet, man kann da zwar mit JS-Verschachtelung oder externen Tools wie curl oder wget arbeiten, aber das ist alles andere als übersichtlich.
Ohne mehr Info zu deinen HTML-Seiten würde ich das dann mit Powershell so extrahieren:
Ergebnis ist dann eine CSV-Datei die so aussieht:
Als Basis diente mir folgende Beispiel-HTML-Datei:
Grüße Uwe
ich würde hier eher zu einer anderen Scriptsprache greifen z.B. Powershell, Batch ist für sowas eher ungeeignet, man kann da zwar mit JS-Verschachtelung oder externen Tools wie curl oder wget arbeiten, aber das ist alles andere als übersichtlich.
Ohne mehr Info zu deinen HTML-Seiten würde ich das dann mit Powershell so extrahieren:
# Liste in der die IP-Adressen stehen
$ipliste = 'a:\iplist.txt'
# CSV-Datei in die das Ergebnis exportiert wird
$export = 'a:\liste.csv'
# mindestens PS 3.0 für Skript erforderlich
if ($PSVersionTable.PSVersion.Major -lt 3){write-host "ERROR: Minimum Powershell Version 3.0 is required!" -F Yellow; return}
(gc $ipliste) | %{
$match = [regex]::Match((Invoke-WebRequest -uri "http://$_" -EA Ignore).RawContent,'(?is)Terminal #:.*?>(\d+)<.*?MAC Adr\.:.*?>([a-f0-9:]+)<.*?Terminal \(IPA\):.*?>([\d\.]+)<.*?IP-Maske:.*?>([\d\.]+)<.*?Gateway \(IPA\):.*?>([\d\.]+)<')
if ($match.Success){
[pscustomobject] @{'Terminal'=$match.Groups[1].Value;'MAC'=$match.Groups[2].Value;'Terminal (IPA)'=$match.Groups[3].Value;'IP-Maske'=$match.Groups[4].Value; 'Gateway'=$match.Groups[5].Value}
}
} | export-csv $export -Delimiter ";" -NoType -Encoding UTF8
"Terminal";"MAC";"Terminal (IPA)";"IP-Maske";"Gateway"
"2866247";"08:15:28:60:47:50";"192.168.17.240";"255.255.255.0";"192.168.17.1"
usw....
Als Basis diente mir folgende Beispiel-HTML-Datei:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Demo</title>
</head>
<body>
<table border="0" width="">
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left">Terminal #:</td>
<td valign="top" align="left"><font face=
"Courier New, Courier, Monospaced">2866247</font></td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left">MAC Adr.:</td>
<td valign="top" align="left"><font face=
"Courier New, Courier, Monospaced">08:15:28:60:47:50</font></td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left">Terminal (IPA):</td>
<td valign="top" align="left"><font face=
"Courier New, Courier, Monospaced">192.168.17.240</font></td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left">IP-Maske:</td>
<td valign="top" align="left"><font face=
"Courier New, Courier, Monospaced">255.255.255.0</font></td>
</tr>
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="left">Gateway (IPA):</td>
<td valign="top" align="left"><font face=
"Courier New, Courier, Monospaced">192.168.17.1</font></td>
</tr>
<tr>
<td valign="top" align="left"></td>
</tr>
</table>
</body>
</html>