makroll10
Goto Top

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... face-wink

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

Content-ID: 305794

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

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

colinardo
Lösung colinardo 31.05.2016 aktualisiert um 17:57:51 Uhr
Goto Top
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:
# 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  
Ergebnis ist dann eine CSV-Datei die so aussieht:
"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>
Grüße Uwe