Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

AUs HTML Code einer Wetterseite Temperaturen oder Windrichtung auslesen - HTML bereits mit wget als txt gespeichert

Frage Entwicklung Batch & Shell

Mitglied: 75772

75772 (Level 1)

24.02.2009, aktualisiert 16:05 Uhr, 6817 Aufrufe, 6 Kommentare

habe einiges probiert. komme einfach nicht weiter und muss jetzt hier um hilfe bitten.

Hallo Zusammen,
vorgestern habe ich gedacht ich schaffs noch indem ich die verschiedenen anderen Probleme hier durchlese, aber hab leider nicht ganz das passende gefunden und kommt nicht voran mit meinem Problem.

Ich lade mir durch eine Batch datei und mittels wget die folgende HTML seite auf meine Festplatte: http://www.rssweather.com/wx/de/karlsruhe/wx.php
Die HTML seite wird in eine Txt datei kopiert, oder als txt abgespeichert.
Auf diesen Quellcode möchte ich zugreifen und die aktuelle Temperatur und später evtl auch WIndrichtung, Sonnenauf und Untergang auslesen. Es reicht wenn ich den Wert, sagen wir mal 6 (ohne Grad Celsius) mittels "echo >> c:\test.txt " abspeichern kann.

so habe ich mal angefangen, kam aber nicht weiter:

for /f "tokens=2,3* delims=: " %%i in ('findstr /L Temperature: "c:\wetter.txt"') do @echo %%i



vielleicht kann mir jemand einen tipp geben, Danke schonmal! Florian




Ausschnitt der wetter.txt
01.
<div id="current"> 
02.
		<p class="summary"><img src="http://rssweather.cachefly.net/images/weather-symbols/mcloudy.png" alt="Mostly Cloudy weather icon" class="icon"/> Mostly Cloudy </p><p class="temp">Temperature: 6&deg;C</p> 
03.
 
04.
		<dl class="summaryText"> 
05.
 			<dt>Humidity:</dt><dd id="humidity">65%</dd> 
06.
   			 			<dt>Wind Speed:</dt><dd id="windspeed">10 KMH</dd>  			 <dt>Wind Direction:</dt><dd id="winddir">N (360&#176;)</dd> 
07.
 
08.
 <dt>Barometer:</dt><dd id="pressure">    1025 mb   </dd> 			<dt>Dewpoint:</dt><dd id="dewpoint">0&deg;C</dd> 
09.
 
10.
 			<dt>Heat Index:</dt><dd id="heatindex">6&deg;C</dd> 
11.
 			<dt>Wind Chill:</dt><dd id="windchill">3&deg;C</dd> 
12.
			<dt>Visibility:</dt><dd id="visibility"> 11 km </dd> 
13.
 
14.
			<dt>Sunrise:</dt><dd>7:22 AM GMT+1</dd> 
15.
 
16.
			<dt>Sunset:</dt><dd>6:00 PM GMT+1</dd>			 
17.
		</dl> 
18.
		 
19.
	<p class="time">Updated: 3:20 PM GMT+1 TUE FEB 24 2009</p> 
20.
</div>
Mitglied: paulepank
24.02.2009 um 16:49 Uhr
Hallo renardfm,

01.
for /f "delims=&" %%i in ('findstr Temperature wetter.txt') do set grad=%%i 
02.
>>grad.txt echo %grad:~-2%
Es werden die letzten 2 Zeichen vor dem & ausgegeben, falls es mal wärmer wird.

cu paulepank
Bitte warten ..
Mitglied: bastla
24.02.2009 um 16:56 Uhr
Hallo renardfm und willkommen im Forum!

Mit Batch alleine macht das bei all diesen Sonderzeichen und unstrukturierten Zeilen keinen Spaß - mit Einbindung von etwas VBS sollte es aber klappen:
01.
@echo off & setlocal 
02.
set "Datei=C:\Wetter.txt" 
03.
 
04.
set SucheTemp="Temperature: (\d+)&deg;" 
05.
set SucheWR="(\d+)&#176;" 
06.
 
07.
set G=%temp%\GetTemp.vbs 
08.
>%G%  echo Set a=WScript.Arguments:T=CreateObject("Scripting.FileSystemObject").OpenTextFile(a(0)).ReadAll:P=a(1) 
09.
>>%G% echo Set rE=New RegExp:rE.IgnoreCase=True:rE.Pattern=P:Set Res=rE.Execute(T):For Each R In Res:WScript.Echo R.SubMatches(0):Next 
10.
 
11.
for /f %%i in ('cscript //nologo %G% "%Datei%" %SucheTemp%') do set "T=%%i" 
12.
if defined T echo Temperatur:   %T% 
13.
 
14.
for /f %%i in ('cscript //nologo %G% "%Datei%" %SucheWR%') do set "WR=%%i" 
15.
if defined WR echo Windrichtung: %WR%
Das (durch den Batch erstellte) VBScript sucht mittels "Regulärer Ausdrücke" nach dem ersten Auftreten des übergebenen Strings (zB "Temperature: Zahl&deg;") und gibt nur die gefundene Zahl zurück. Die Schreibweise für die gesuchte Zahl (nur Ziffern) im Suchstring ist dabei "(\d+)"

Durch mehrmaligen Aufruf mit unterschiedlichen Suchbegriffen (siehe zB Variable %SucheWR%) können verschiedene Werte ausgelesen werden.

Grüße
bastla
Bitte warten ..
Mitglied: 75772
24.02.2009 um 16:59 Uhr
puh, vielen Dank!!

jetzt hab ich wieder was zu basteln

einen schönen abend noch!!
Bitte warten ..
Mitglied: NBTKetchup
14.03.2011 um 21:08 Uhr
HI zusammen

kann man damit auch Textteile auslesen weil wenn ich das richtig verstanden hab kann (\d+) nur Zahlenwerte annehmen?!

in dem Beispiel oben zB will ich die Visibility: nicht nur mit 11 aulesen sondern er soll das 11km auslesen, am besten unabhängig davon wieviel Zeichen der Text hat einfach bis das nächste Trennzeichen kommt in diesem Fall </dd>

LG Ket
Bitte warten ..
Mitglied: bastla
14.03.2011 um 21:50 Uhr
Hallo NBTKetchup!

Wegen der Anführungszeichen ist das etwas tricky - aber so sollte es klappen:
01.
@echo off & setlocal 
02.
set "Datei=C:\Wetter.txt" 
03.
 
04.
set SucheTemp="Temperature: (\d+)ø" 
05.
set SucheWR="(\d+)ø" 
06.
set SucheVis="<dd id=@visibility@>(.+)</dd>" 
07.
 
08.
set G=%temp%\GetTemp.vbs 
09.
>%G%  echo Set a=WScript.Arguments:T=CreateObject("Scripting.FileSystemObject").OpenTextFile(a(0)).ReadAll:P=Replace(a(1),"@","""") 
10.
>>%G% echo Set rE=New RegExp:rE.IgnoreCase=True:rE.Pattern=P:Set Res=rE.Execute(T):For Each R In Res:WScript.Echo Trim(R.SubMatches(0)):Next 
11.
 
12.
for /f %%i in ('cscript //nologo %G% "%Datei%" %SucheTemp%') do set "T=%%i" 
13.
if defined T echo Temperatur:   %T% 
14.
 
15.
for /f %%i in ('cscript //nologo %G% "%Datei%" %SucheWR%') do set "WR=%%i" 
16.
if defined WR echo Windrichtung: %WR% 
17.
 
18.
for /f "delims=" %%i in ('cscript //nologo %G% "%Datei%" %SucheVis%') do set "Vis=%%i" 
19.
if defined Vis echo Visibility: %Vis%
Den Anführungszeichen-Ersatz "@" kannst Du auch variieren (im Suchstring und in Zeile 9 muss er aber natürlich übereinstimmen) ...

Grüße
bastla
Bitte warten ..
Mitglied: NBTKetchup
15.03.2011 um 10:36 Uhr
Hi bastla

tausend dank du hast mir sehr weiter geholfen

LG Ket
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Eigener HTML-Code im UserForm (5)

Frage von Roadrunner777 zum Thema VB for Applications ...

PHP
gelöst HTML Dropdownmenü auslesen und in PHP als Variable übergeben (35)

Frage von ITFlori zum Thema PHP ...

JavaScript
gelöst HTML-Javascript - Auslesen von Formularfeldern (1)

Frage von internet2107 zum Thema JavaScript ...

Windows 7
gelöst Bereits eingebundener Drucker - IP Adresse lokal auslesen (17)

Frage von harald.schmidt zum Thema Windows 7 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...