![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 1.06.2005 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
Na stronie www.onet.pl jest tak w kodzie źródłowym
Który plik muszę włożyć (includowac) z onetu aby pogoda byla na mojej stronie chodzi mi tylko o te małą warstę która pokazuje stan dla danego miasta nie wiem który plik *.js mam dołozyc grzebalem w kodzie i sie nie doszykałem moze ktos ma cos takiego prosz eo odpowiedź |
|
|
![]() |
![]() ![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 24.10.2004 Skąd: TG Ostrzeżenie: (0%) ![]() ![]() |
Potraktujcie ten mój post jako artykuł (IMG:http://forum.php.pl/style_emoticons/default/cool.gif)
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.com 2. Wyłuskiwanie informacji z kodu HTML -TextPipe www.datamystic.com Jak 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 2 a 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:
W pliku import.TXT uzyskasz takie coś:
Tym sposobem wyłuskaliśmy miasto, datę oraz wszystko to co znajduje się w "Prognoza szczegółowa" dla "Teraz" i "Wkrótce" (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) 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ł (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) 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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ---- PS. soryy że takie przydługawe ale to w końcu dla tych "ułomnych" eee chciałem powiedzieć dla "potomnych" oczywiście (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował Fixer 25.07.2007, 10:25:34 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 20:18 |