Potraktujcie ten mój post jako artykuł
Da się wyciągnąć dane z
www.pogoda.onet.pl (oraz z każdego innego serwisu nie koniecznie pogodowego) bez użycia linijki kodu w php/js
Mianowicie potrzebujesz programu, który wczyta plik html pobrany i zapisany wcześniej na dysku twardym, następnie za pomocą wyrażeń regularnych powycina istotne dla Ciebie dane i wstawi je do pliku TXT w formacie np.: miasto|data|temperatura|...|....
Potem tak "wyłuskane" dane w pliku TXT możesz zaimportować do Excela lub do Accessa po to by je tam przeglądać.
Potrzebne programy:1. Automatyzacja pobierania witryn www na hdd
-
Offline Explorer www.metaproducts.com2. Wyłuskiwanie informacji z kodu HTML
-
TextPipe www.datamystic.comJak już mówiłem użycie tego programu zwalnia nas od znajomości programowania ale nie zwalnia nas od znajomości wyrażeń regularnych (regular expression).
Tutoriale o reg. exp.:
link 1 |
link 2a z
tąd możecie zassać program do potestowania sobie wyrażeń
Dla przykładu możesz użyć teraz narzędzia TextPipe i filtra o nazwie "Perl pattern" wpisując do "Find pattern" (musi być w jednj linii bez znaków końca linii, frazy "początek" oraz "koniec" usuwamy oczywiście):
=============== [początek]
<SPAN class=a32>(.*) .*<DIV style="float:right;" class="a2b">(.*)</DIV></DIV><DIV class="a1 sz fr pt2">.*Teraz\s</SPAN><SPAN class="ar2 gold">(\d{2}-\d{2})</SPAN>.*<IMG src="_d/ico/([a-z]\d{2}\.gif)" alt="" align=absbottom>.*title="Temperatura">(\d{1,2})</B>.*<TD class="a1b pl2 pb2" nowrap>(\d{3,4})\shPa.*<IMG src="_d/ico/(rw\d\.gif)" align="absmiddle">(\d{1,3})\skm/h.*Śnieg:</TD><TD class="a1b pl2 pb2">(\d{1,2}\.\d{1,2})\smm.*Deszcz:</TD><TD class="a1b pl2 pb2">(\d{1,2}\.\d{1,2})\smm.*Wkrótce\s</SPAN><SPAN class="ar2 gold">(\d{2}-\d{2})</SPAN>.*<IMG src="_d/ico/([a-z]\d{2}\.gif)" alt="" align=absbottom>.*title="Temperatura">(\d{1,2})</B>.*<TD class="a1b pl2 pb2" nowrap>(\d{3,4})\shPa.*<IMG src="_d/ico/(rw\d\.gif)" align="absmiddle">(\d{1,3})\skm/h.*Śnieg:</TD><TD class="a1b pl2 pb2">(\d{1,2}\.\d{1,2})\smm.*Deszcz:</TD><TD class="a1b pl2 pb2">(\d{1,2}\.\d{1,2})\smm
=============== [koniec]
A w "Replace with" wpisujesz:
$1|$2|$3|$4|$5|$6|$7|$8|$9|$A\r\n$1|$2|$B|$C|$D|$E|$F|$G|$H|$I\r\n
W pliku import.TXT uzyskasz takie coś:
Miasto|Data|Godzina|Chmurka|°C|hPa|Kierunek wiatru|Wiatr|Śneg|Deszcz
Bydgoszcz|Sobota, 21 lipca 2007|02-08|b01.gif|17|1015|rw6.gif|8|0.0|0.2
Bydgoszcz|Sobota, 21 lipca 2007|08-14|b03.gif|22|1015|rw7.gif|4|0.0|0.5
Tym sposobem wyłuskaliśmy miasto, datę oraz wszystko to co znajduje się w "Prognoza szczegółowa" dla "Teraz" i "Wkrótce"
3.
Access lub
Excel do zaimportowania tych danych i ich dalszej prezentacjii
Teraz możesz zaautomatyzować cały ten proces pobierania, wyłuskiwania i zapisu danych przy pomocy windowsowego kiedyś "harmonogramu zadań" a dziś Narzędzia systemowe > "zaplanowane zadania" chociaż ja polecał bym coś bardziej zaawansowanego jak np.
VisualCron http://www.visualcron.com/ lub
Advanced Task Scheduler http://www.southsoftware.com/ lub po prostu sławny CRON dla systemów z rodziny Linux.
Jak masz dobrą płytę główną (overlockerską) to zapewne w opcjach znajdziesz coś takiego jak: "WakeON (LAN/Alarm/Password/Key/)". Mianowicie ustawiasz kompa na jakąś konkretną godzinę by ten się sam włączył, pobrał co trzeba i sam się wyłączył

Zastanówmy się, kiedy należałoby pobierać wyniki ze stronki na dysk twardy (pogrubioną czcionką zaznaczyłem godziny aktualizacji pogody na serwerze onetu,
dodajcie może do tego czasu kilka minut by dać serwerowi czas na spokojne wprowadzenie zmian):
02-08 08-14 ||
00:00 zapis na hdd
08-14 14-20 ||
06.00 <- nie interesuje nas ten przedział!
14-20 20-02 ||
12:00 zapis na hdd
20-02 02-08 ||
18.00 <- nie interesuje nas ten przedział!
Czyli pobieramy na dysk tylko te pliki html w których pisze:
Teraz: 02-08 Wkrótce: 08-14
oraz
Teraz: 14-20 Wkrótce: 20-02
A w ubiegłym roku był taki podział: (może to okres zimowy czy coś w tym stylu...)
01-07
07-13
13-19
19-01
Na samym końcu możesz archiwizować pliki HTML do archiwum RAR w postaci: "DD-MM-YYYY-HH-MM.rar" przy pomocy BATCH:
Kod
@ECHO OFF
SET SCIEZKA= "C:\Program Files\WinRAR\rar.exe"
SET PARAMETRY= a -s -r -x*.WD3 -m5 -mc10:40t+ -agDD-MM-YYYY-HH-MM
SET SCIEZKA_ARCHIWUM= "C:\download"
SET NAZWA_ARCHIWUM= "pogoda_"
SET PLIKI= "C:\download\pogoda.onet.pl\*.html"
%SCIEZKA% %PARAMETRY% %SCIEZKA_ARCHIWUM%\%NAZWA_ARCHIWUM% %PLIKI%
DEL %PLIKI%
Wystarczy tylko ewentualnie poprawić ścieżki i zapisać to do pliku *.bat lub *.cmd i odpalać o wybranych godzinach

----
PS. soryy że takie przydługawe ale to w końcu dla tych "ułomnych" eee chciałem powiedzieć dla "potomnych" oczywiście