Skocz do zawartości

Ściąganie danych z dynamicznych stron WWW


wn2001

Pomocna odpowiedź

Dzień dobry,

pozwolę sobie opisać poniżej dwa problemy (z serii: po godzinach 🙂), jednak dotyczące tego, samego, o czym wspominam w tytule. Chciałbym ściągnąć i następnie prezentować w we własnej formie lub na jakimś wyświetlaczu dane z dwóch stron, które bardzo mnie "interesują": pierwsza strona ZTM Poznań, na której prezentowane są w czasie rzeczywistym czasy pozostałe do odjazdu autobusów z pewnego przystanku: https://www.peka.poznan.pl/vm/?przystanek=WILC02 - druga natomiast to http://www.dlugpubliczny.org.pl/ 

Próbowałem między innymi pakietu request, ale pobiera on jedynie zawartość statyczną, która nie ma zbyt dużej wartości - w pierwszym przypadku interesujące są nazwy linii + czasy, w drugim wartość długu, ale to wartości wyświetlane dynamicznie i nie za bardzo wiem, jak móc w miarę sprawnie pobierać te dane 🙂

Odnośnie pierwszej strony i tego, jak system ZTMu działa, znalazłem dokumentację "z inżynierii wstecznej": https://github.com/xavery/peka-vm-api/blob/master/peka-vm-api.md , jednak tutaj też nie zbyt wiem, od jakiej strony do tego "podejść".

Umieszczam w dziale RaspberryPi, ponieważ docelowo dane byłyby ściągane właśnie na nią, stąd idealny byłby jakiś sposób dla Python'a 😉 

Co do pierwszej strony, ściągać wystarczyłoby co minutę, w tej drugiej - nieco częściej 🙂 Edycja 12.09.2020: Oczywiście nie doprecyzowałem, co mam na myśli - nie chodzi o tak częste odpytywanie serwera a określenie z jaką częstotliwością chciałbym aktualizować dane, a co ile miały by się one zmieniać po mojej stronie - przykładowo dla licznika długu przyrost na sekundę jest stały związku z tym informację wystarczyłoby pobierać co 24h i ewentualnie korygować

Pozdrawiam i z góry dziękuję za odpowiedzi

Edytowano przez wn2001
Doprecyzowałem, co miałem na myśli
Link do komentarza
Share on other sites

Co znaczy "pobiera zawartość statyczną"? Nie chce mi się na telefonie włazić na te strony, ale pewnie ta "dynamiczna" zawartość to jakiś ajax...

Jeśli tak, to możesz spróbować użyć WebKita (w sumie to pełnoprawna przeglądarka z javascriptem, css-em i możliwością wstrzyknięcia swojego kodu do strony). Ew. zainteresuj się Selenium - od razu mówię, że sam z tego nie korzystałem, ale z tzw. "dobrze poinformowanych źródeł" wiem że działa całkiem fajnie.

Aha, jeszcze jedno: jeśli będziesz za często ściągał dane z tych stron, masz duże szanse na bana na IP. Nie każdy admin lubi, jak mu zajeżdżają serwer debilnymi requestami. A "częściej niż co minutę" kwalifikuje się właśnie do bycia debilnym requestem.

Edytowano przez ethanak
  • Pomogłeś! 1
Link do komentarza
Share on other sites

(edytowany)

1) To znaczy, że pobierają się HTMLe z szkieletem, a właściwych danych brak, niestety nie wiem co to za technologia, ale wygląda to tak dla licznika długu jakby przeglądarka dostała skrypt i sama miałaby sobie liczyć

2) Dziękuje, o WebKicie jeszcze nie słyszałem

3) Rozumiem, o ile dla licznika długu można robić requesty co 10min i obliczać tempo wzrostu, to jak to zrobić dla strony z komunikacją miejską? Wartości są odświeżane co minutę, dodam tylko, że zmieniają się, a sama strona się nie odświeża (najlepiej to widać, jakby po wejściu na stronę zaczekać, aż którejś z linii zostanie do odjazdu mniej niż minuta)

Edytowano przez wn2001
literówka :)
Link do komentarza
Share on other sites

Nie, nie rozumiesz.

Ściągając całą zawartość strony zmuszasz serwer do wysłania 99% danych, które i tak wywalisz do śmieci. Z tych 99% część jest ściągana z jakiejś bazy danych (co też jakieś zasoby kosztuje). Serwerów o ile wiem darmo nie dają, i  każdy taki request kosztuje.

Czy ty, jako administrator serwera, pozwoliłbyś jakiemuś gościowi na łażenie po twoim serwerze jak po podwórku z gnojem?

Domyślam się, że liczba w twoim nicku to rok urodzenia. Jeśli tak - bawię się w admina trochę dłużej niż żyjesz na tym świecie. I powiem szczerze - na moim serwerze po wykryciu takiego nadużycia miałbyś cholerne problemy (włącznie z możliwością oskarżenia o nadużycie, poczytaj sobie ustawę).

Aha, i nie byłbyś pierwszy. Bo nawet jeśli kryjesz się za natem  Twój ISP niespecjalnie będzie zadowolony jeśli stwierdzę, że jego gateway jest niemile widziany, a logi z połączeń ma udostępnić prokuraturze.

 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

(edytowany)

Dziękuję @ethanak za uświadomienie ograniczeń prawnych związanych z web-scraplingiem i pobieraniem danych, szczególnie tych dotyczących częstotliwości ich pobierania.

Przechodząc do strony technicznej, nie wiem, czy zajrzałeś na te dwie strony:

a) informację o długu publicznym wystarczy pobierać raz dziennie i na tej podstawie aktualizować współczynnik przyrostu na sekundę - czy taka częstotliwość nie jest szkodliwa? I sama zawartość tej informacji, czy pod względem prawnym pobranie jej na użytek własny jest dozwolony?

b) odnośnie rozkładów jazdy, Zarząd Transportu Miejskiego, udostępnia je bezpłatnie (pod pewnymi warunkami wymienionymi w regulaminie), ale nie poprzez stronę monitorującą (która przeznaczona jest dla użytkowników indywidualnych), a API: https://www.ztm.poznan.pl/pl/dla-deweloperow/ - przeglądałem dokumentację (https://www.ztm.poznan.pl/pl/dla-deweloperow/dokumenty/), niestety nie mam zielonego, jak "wyłuskać" interesujące mnie informacje - czy ktoś ma jakiś pomysł?

Edytowano przez wn2001
Link do komentarza
Share on other sites

@ethanak możesz podać o jakie nadużycie ostarżyć można kogoś kto co np. 1 minutę wysyła zwykłe zapytanie do ogólnodostępnego serwera? Pytam ze zwykłej ciekawości, bo to nie atak, nawet próba DoS, po prostu zwykłe zapytania, w dodatku niezbyt częste. Więc ciekaw jestem jaka ustawa coś takiego reguluje.

Link do komentarza
Share on other sites

@Elvisprzyznam się, szukałem tego konkretnego przepisu i nie znalazłem (chociaż pamiętam, że kiedyś to czytałem jako lekturę obowiązkową w firmie). W każdym razie chodziło o "użycie obcego systemu teleinformatycznego w sposób niezgodny z jego przeznaczeniem" czy jakoś tak. A dobry prawnik doszuka się tam ciężkiego przestępstwa przeciwko całej ludzkości 😉

Poza tym wyobraź sobie, że np. stu takich "specjalistów od parsowania stron" wpada na ten sam pomysł i co minutę ściąga całą zawartość strony. Rzecz w tym, że komputery ostatnio są dość dokładne i requesty wysyłane z crona nie rozłożą się na całą minutę, a przylazą wszystkie na raz. A to może być niezdrowe zarówno dla serwera, jak i dla potencjalnego użytkownika, który zamiast np. rozkładu jazdy zobaczy "mysql error: too many connections"... Systemy mają swoją redundancję, ale niekoniecznie aż taką.

Druga sprawa to reklamy. Wyświetlenia reklam na stronach są płatne (jeśli nie w formie pieniędzy, to jakiegoś barteru) od wyświetlenia, a takie ściąganie można bardzo prosto podciągnąć pod podbijanie licznika reklam. Bo przecież nikt tych reklam nie ogląda, prawda?

A tak w ogóle przypominam, że nie chodzi tu o "raz na minutę" tylko częściej.

@wn2001 Jeśli jakieś dane są dostępne to właśnie po to, aby się z nimi zapoznać. Prawdopodobnie nikomu nie zaszkodzi ściągnięcie nawet całej strony raz dziennie, ale...

W przypadku ZTM masz udostępnione API do pobierania interesujących informacji, właśnie po to zrobione aby ściągać szybko i sprawnie te informacje, które są ci potrzebne. Owszem, dokumentacja jest "nieco" kulawa, ale jest (chociaż doskonale rozumiem, że przedzieranie się przez dokumentację Googla może być przyczyną wielu groźnych chorób). Tyle, że np. maszyna serwująca trip_updates.pb (a to chyba najbardziej interesujący plik) musi być przystosowana do tego, że będziesz sobie chciał to zasysać co parę sekund. Serwer WWW niekoniecznie.

Prawdopodobnie szybciej pójcie co zrobienie tego co chcesz poprzez API niż bawienie się w webkity, seleniumy czy inne wynalazki (szczególnie jeśli nie jesteś obeznany z tematem).

 

Edytowano przez ethanak
  • Lubię! 1
Link do komentarza
Share on other sites

Moim zdaniem wysyłanie niewielkiej liczby zapytań, czy to będzie co minutę, czy co 30s nie podpada nawet w najmniejszym stopniu w "użycie systemu teleinformatycznego w sposób niezgodny z przeznaczeniem" - w końcu serwer www jest właśnie po to, żeby takie zapytania realizować. A że nie są wykonywane przez przeglądarkę, tylko przez skrypt to już szczegół techniczny. Oczywiście administrator może w takiej sytuacji zablokować IP, może nawet dodać regułę, która będzie takie zapytania odrzucała z automatu.

  • Lubię! 1
Link do komentarza
Share on other sites

Dnia 11.09.2020 o 14:42, wn2001 napisał:

Co do pierwszej strony, ściągać wystarczyłoby co minutę, w tej drugiej - nieco częściej 🙂 Edycja 12.09.2020: Oczywiście nie doprecyzowałem, co mam na myśli - nie chodzi o tak częste odpytywanie serwera a określenie z jaką częstotliwością chciałbym aktualizować dane, a co ile miały by się one zmieniać po mojej stronie - przykładowo dla licznika długu przyrost na sekundę jest stały związku z tym informację wystarczyłoby pobierać co 24h i ewentualnie korygować

Sprecyzowałem w pierwszym poście, co miałem na myśli, a co starałem się przekazać później - nie chcę odpytywać serwera "częściej niż co minutę", bo to oczywiście bez sensu, a aktualizować informację po  swojej stronie - jeśli wartość rośnie np. liniowo, to wystarczy pobierać daną co 24h, a w międzyczasie mogą jest szacować z najbanalniejszej funkcji liniowej 🙂

Przepraszam za brak precyzji odnośnie sformułowania request, które oczywiście oznacza zapytanie do serwera z prośbą o zwrot całej strony, nie chodziło mi dokładnie o to - chciałem zauważyć w poprzednich postach, że wchodząc np. na dlugpubliczny.org.pl strona pobiera się raz, a potem przeglądarka sama dodaje wartości - mogę odciąć laptopa od połączenia internetowego, a ona nadal będzie rosnąć - sprawdziłem

Wykorzystałem ten fakt, przy eksperymentach z selenium, skrypt wygląda mniej-więcej tak:

import selenium
import time

driver = webdriver.Firefox()
driver.get("jakas_strona")

while(1):
	cos_co_szukam = driver.find_element_by_class_name("jakas_nazwa_klasy_ktora_mnie_interesuje").text
	print(cos_co_szukam)
	time.sleep(1)

Interesująca mnie wartość, która aktualizuje się nawet po odcięciu od Internetu, jest wyświetlana w pętli co sekundę - ale to nie jest wykonywanie zapytań do serwera - zapytanie wykonałem tylko raz (driver.get), a później korzystając z driver.find_element_by_class_name działam już po stronie swojego laptopa i nikomu nie szkodzę ? - @Elvis, @ethanak, dobrze rozumiem?

Teraz odnośnie https://www.peka.poznan.pl/vm/?przystanek=WILC02 też nie muszę odświeżać strony co minutę, wartości zmieniają się samoistnie, a ja po stronie swojej, lokalnej, mogę je sobie odczytać do wartości tekstowych (na przykład co minutę). Porównam to do sytuacji, w której zwykłą przeglądarką wszedłbym na te dwie strony (wczytując je raz) i odszedł od laptopa, zostawiając je same sobie - nie jest to działanie "prawnie wątpliwe"? Przepraszam, jeśli nie posługuję się słownictwem technicznym, mam nadzieję, że zrozumiale napisałem, o co mi chodzi 🙂

===

20 godzin temu, Elvis napisał:

@ethanak możesz podać o jakie nadużycie ostarżyć można kogoś kto co np. 1 minutę wysyła zwykłe zapytanie do ogólnodostępnego serwera? Pytam ze zwykłej ciekawości, bo to nie atak, nawet próba DoS, po prostu zwykłe zapytania, w dodatku niezbyt częste. Więc ciekaw jestem jaka ustawa coś takiego reguluje.

Też próbowałem szukać, ale jedyne co znalazłem, to ustawa n/t baz danych isap.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=wdu20011281402 - ma tylko pięć stron, nie jestem prawnikiem, ale pozwolę sobie zacytować interesujące mnie fragmenty:

Art.7 - 1. Producent bazy danych udostępnionej publicznie w jakikolwiek sposób nie może zabronić użytkownikowi korzystającemu zgodnie z prawem z takiej bazy danych, pobierania lub wtórnego wykorzystania w jakimkolwiek celu nieistotnej,co do jakości lub ilości, części jej zawartości.

Art.7 - 3. Korzystanie z baz danych, o którym mowa w ust. 1, nie może naruszać normalnego korzystania z baz danych lub godzić w słuszne interesy producenta baz danych.

Art.8 - 2. Nie jest dozwolone powtarzające się i systematyczne pobieranie lub wtórne wykorzystanie sprzeczne z normalnym korzystaniem i powodujące nieusprawiedliwione naruszenie słusznych interesów producenta.

Czy wykonanie jednego zapytania na dobę, a następnie pobieranie co pewien czas danych (do użytku osobistego) wyświetlonych w przeglądarce tak jak podczas korzystania przez "zwykłego" użytkownika nie narusza ostatniego artykułu?

===

2 godziny temu, ethanak napisał:

Poza tym wyobraź sobie, że np. stu takich "specjalistów od parsowania stron" wpada na ten sam pomysł i co minutę ściąga całą zawartość strony. Rzecz w tym, że komputery ostatnio są dość dokładne i requesty wysyłane z crona nie rozłożą się na całą minutę, a przylazą wszystkie na raz. A to może być niezdrowe zarówno dla serwera, jak i dla potencjalnego użytkownika, który zamiast np. rozkładu jazdy zobaczy "mysql error: too many connections"... Systemy mają swoją redundancję, ale niekoniecznie aż taką.

Właśnie chodzi mi o to, że źle się wyraziłem - nie chcę ściągać co minutę całej zawartości strony, a jedynie fragmenty, które aktualizowane są albo dzięki przeglądarce (lokalnie, jak przy liczniku długu), albo na stronie zaimplementowano jakiś mechanizm (?) który sam uaktualnia wybrane fragmenty, nie przeładowując całej strony.

2 godziny temu, ethanak napisał:

Druga sprawa to reklamy. Wyświetlenia reklam na stronach są płatne (jeśli nie w formie pieniędzy, to jakiegoś barteru) od wyświetlenia, a takie ściąganie można bardzo prosto podciągnąć pod podbijanie licznika reklam. Bo przecież nikt tych reklam nie ogląda, prawda?

Akurat na przykładowych stronach, o których rozmawiamy nie ma reklam, ale jeśli dobrze rozumiem, jeśli raz wywołam driver.get, to jest to identyczne z tym, jakbym dokładnie raz wszedł na jakąś stronę - tylko nie ja klikam myszką, a przeglądarka uruchamiana jest z skryptu

2 godziny temu, ethanak napisał:

A tak w ogóle przypominam, że nie chodzi tu o "raz na minutę" tylko częściej.

To już wyjaśniłem powyżej, chodzi o aktualizację danych na przykład co 30s, obliczoną proporcjonalnie z różnicy wartości jaką pobieram jedynie co 24h

===

3 godziny temu, ethanak napisał:

@wn2001 Jeśli jakieś dane są dostępne to właśnie po to, aby się z nimi zapoznać. Prawdopodobnie nikomu nie zaszkodzi ściągnięcie nawet całej strony raz dziennie, ale...

W przypadku ZTM masz udostępnione API do pobierania interesujących informacji, właśnie po to zrobione aby ściągać szybko i sprawnie te informacje, które są ci potrzebne. Owszem, dokumentacja jest "nieco" kulawa, ale jest (chociaż doskonale rozumiem, że przedzieranie się przez dokumentację Googla może być przyczyną wielu groźnych chorób). Tyle, że np. maszyna serwująca trip_updates.pb (a to chyba najbardziej interesujący plik) musi być przystosowana do tego, że będziesz sobie chciał to zasysać co parę sekund. Serwer WWW niekoniecznie.

Prawdopodobnie szybciej pójcie co zrobienie tego co chcesz poprzez API niż bawienie się w webkity, seleniumy czy inne wynalazki (szczególnie jeśli nie jesteś obeznany z tematem).

Dziękuję za wskazówki. Właśnie jak wspomniałem poeksperymentowałem nieco z selenium, działa świetnie, ale jak ma się to właśnie w wyżej wymienionym kontekście? Nie pobiera ono co chwilę całej strony, strona jest wywoływana tylko raz przez Firefoxa, a potem dane "zbierane są" z tego, co widzę ja, już w swojej przeglądarce. Czyli rozumiem, że taka metoda nie różni się (dla serwera) od tego, że jak wspomniałem wczytam stronę i odejdę od laptopa?

===

3 godziny temu, Elvis napisał:

Moim zdaniem wysyłanie niewielkiej liczby zapytań, czy to będzie co minutę, czy co 30s nie podpada nawet w najmniejszym stopniu w "użycie systemu teleinformatycznego w sposób niezgodny z przeznaczeniem" - w końcu serwer www jest właśnie po to, żeby takie zapytania realizować. A że nie są wykonywane przez przeglądarkę, tylko przez skrypt to już szczegół techniczny. Oczywiście administrator może w takiej sytuacji zablokować IP, może nawet dodać regułę, która będzie takie zapytania odrzucała z automatu.

Dziękuję za odpowiedź @Elvis, a co sądzisz o tym, co napisałem powyżej, szczególnie w kwestii pakietu selenium i tego, jak ono działa?

Link do komentarza
Share on other sites

9 minut temu, wn2001 napisał:

chodzi o aktualizację danych na przykład co 30s, obliczoną proporcjonalnie z różnicy wartości jaką pobieram jedynie co 24h

Tyle że mówimy o dwóch różnych serwisach.

Selenium to bardzo fajna rzecz, ale ma jedną wadę: wymaga uruchomienia przeglądarki (która wcale taka mała nie jest) i X Serwera (druga kobyła). W porównaniu do tego skrypt ściągający pliki .pb z ZTM ma dużo mniejsze wymagania... a nawet jeśli z jakichś przyczyn nie chcesz korzystać z API - raczej za pomocą np. LiveHTTPHeaders podejrzałbym o czym Firefox gada z serwerem (na 99.99% to jakiś Ajax) i wysyłał identyczne zapytania do serwera bez konieczności uruchamiania przeglądarki, iksów i całej nikomu niepotrzebnej otoczki 😉

A do obliczenia "aktualnej" wartości na podstawie dwóch wartości z 24h nie jest absolutnie potrzebna przeglądarka. Kombinuj raczej z requests, selenium jest znakomite do stron interaktywnych.

 

  • Lubię! 1
Link do komentarza
Share on other sites

(edytowany)
2 godziny temu, ethanak napisał:

Selenium to bardzo fajna rzecz, ale ma jedną wadę: wymaga uruchomienia przeglądarki (która wcale taka mała nie jest) i X Serwera (druga kobyła). W porównaniu do tego skrypt ściągający pliki .pb z ZTM ma dużo mniejsze wymagania... a nawet jeśli z jakichś przyczyn nie chcesz korzystać z API - raczej za pomocą np. LiveHTTPHeaders podejrzałbym o czym Firefox gada z serwerem (na 99.99% to jakiś Ajax) i wysyłał identyczne zapytania do serwera bez konieczności uruchamiania przeglądarki, iksów i całej nikomu niepotrzebnej otoczki

Przepraszam, ale o jakim X Serwerze mówisz? Chodzi o ten plik geckodriver, który jest niezbędny, aby skrypt o którym napisałem powyżej wystartował? Ponieważ aby to, co napisałem przykładowo powyżej zadziałało, wystarczy "from selenium import webdriver"

Jeśli chodzi o zasobożerność, to myślę, że RPi robiąc tylko i wyłącznie to (+prezentacja danych na jakimś ekranie) dałoby bez problemu radę (tylko tam byłoby Chromium), ale bardziej wątek założyłem, nie dlatego, że chcę już jakiś konkretny projekt rozpoczynać, a dlatego, że myślałem "Jakbym chciał przykładowo zbudować sobie taką miniaturkę tablicy informacji pasażerskiej jak na przystankach albo miniaturkę licznika długu publicznego jak na Marszałkowskiej w Warszawie, to jak podejść do uzyskania niezbędnych danych" 🙂

A odnośnie licznika długu - niestety zwykły request daje jakąś stałą wartość (odbiegającą znacznie od aktualnej), dopiero z selenium zadziałało. Jakbyś chciał sprawdzić o co mi chodzi, to pobierając kompletną stronę WWW z dodatkowymi plikami, jak uruchomisz lokalnie - będzie działać, jak tylko plik HTML głównej strony - już nie 🙂

Edytowano przez wn2001
Link do komentarza
Share on other sites

7 godzin temu, wn2001 napisał:

Przepraszam, ale o jakim X Serwerze mówisz?

Ekhm... to Ty naprawdę nie masz pojęcia o RPi i Linuksach,  a chcesz na to aplikacje pisać? Może jeszcze powiesz, że nie próbowałeś do wyszukiwarki wpisać "X Serwer"?

Link do komentarza
Share on other sites

(edytowany)
7 godzin temu, ethanak napisał:

Może jeszcze powiesz, że nie próbowałeś do wyszukiwarki wpisać "X Serwer"?

Oczywiście, że wpisałem "X server selenium", ale nie uzyskałem żadnych zadowalających wyników, teraz już wiem dlaczego - ponieważ nie ma to nic wspólnego z selenium, a chodzi po prostu o:

Cytat

application that manages one or more graphics displays and one or more input devices (keyboard, mouse, etc.) connected to the computer.

Źródło: https://askubuntu.com/questions/7881/what-is-the-x-server

Nie było pytania 🙂

===

7 godzin temu, ethanak napisał:

Ekhm... to Ty naprawdę nie masz pojęcia o RPi i Linuksach,  a chcesz na to aplikacje pisać?

Przyznaję, że z Linuxem i RPi miałem do czynienia bardzo niewiele dotychczas, ale już prawie udało mi się napisać prosty skrypt, który pobiera dane z selenium, a następnie wyświetla je w trybie pełnoekranowym za pomocą tKinter - więc X-server i tak jest konieczny, aby uruchomić GUI 🙂

Edytowano przez wn2001
Link do komentarza
Share on other sites

18 minut temu, wn2001 napisał:

X-server i tak jest konieczny, aby uruchomić GUI

Wcale nie - to zależy od GUI. A jeśli już sie upierasz przy selenium (rozumiem, nie chce się czytać dokumentacji od googla, też nie lubię) to poczytaj o Xvfb - przyda Ci się!

 

  • Pomogłeś! 1
Link do komentarza
Share on other sites

(edytowany)

No i prosty programik powstał 🙂 Pobiera dane tak, jak zwykły użytkownik za pomocą przeglądarki, czyli przez selenium, a następnie wyświetla cztery pierwsze pozycje dla przystanku Wilczak (w obu kierunkach). Spełniam wszystkie trzy warunki ponownego wykorzystania danych https://www.ztm.poznan.pl/pl/dla-deweloperow/, na pasku na dole naprzemiennie wyświetlam: godzinę ostatniej pomyślnej aktualizacji, źródło danych i informację o ponownym przetworzeniu (tak jak na zdjęciu poniżej). Teraz testuję, jak poradzi sobie przez kilkadziesiąt godzin sam, czy nie zgłosi żadnego wyjątku 🙂 Na dole jest informacja również o docelowym RPi, ale pierwsza wersja jest na laptopie z Ubuntu.

@ethanak, @Elvis, dziękuję za wskazówki i pomoc 🙂

IMG_1079.thumb.JPG.8f43d4c188fc809738d93bf552e85288.JPG

Edytowano przez wn2001
  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.