Kompletan vodič za automatsko praćenje promena na sajtovima pomoću changedetection.io i ntfy, sa obaveštenjima na telefonu i bez ručnog proveravanja stranica.

Kategorija: Tutorijali | Težina: Srednja | Platforma: Windows 10 i Windows 11
Alati: changedetection.io (0.60.2), ntfy, Docker Desktop | Autor: Zoran Knežević
Mnogi sajtovi menjaju sadržaj bez slanja mejla, RSS objave ili bilo kakvog drugog obaveštenja. To može biti cena proizvoda, status dostupnosti, novi konkurs za posao, javni poziv, rezultat, termin, nova verzija programa ili samo jedna važna rečenica na stranici.
Umesto da istu stranicu otvaramo nekoliko puta dnevno, možemo napraviti sopstveni sistem koji će:
- periodično otvoriti zadatu adresu;
- izdvojiti samo deo stranice koji nas zanima;
- uporediti novi sadržaj sa prethodnim;
- sačuvati istoriju promena;
- poslati obaveštenje na telefon čim otkrije relevantnu razliku.
U ovom vodiču koristićemo dva besplatna alata otvorenog koda:
- changedetection.io za proveru i poređenje stranica;
- ntfy za slanje obaveštenja na telefon ili računar.
Rešenje radi lokalno na Windows računaru. Nije potrebno pisati program, praviti mobilnu aplikaciju niti svakom sajtu davati svoju adresu elektronske pošte.
Važno: računar na kojem radi changedetection.io mora biti uključen, povezan sa internetom i van sleep režima u trenutku zakazane provere. Kada je računar ugašen ili uspavan, provere se ne izvršavaju.
Šta možemo da pratimo?
Praktično svaki javno dostupan tekstualni sadržaj, na primer:
- cenu jednog proizvoda;
- pojavu oznake "Na stanju";
- nestanak teksta "Rasprodato";
- novi oglas za posao;
- konkurs objavljen na sajtu ustanove;
- rezultate konkursa ili rang listu;
- nove termine za zakazivanje;
- promenu pravilnika ili uslova korišćenja;
- novu verziju programa;
- promenu sadržaja PDF dokumenta;
- promenu JSON odgovora javnog API-ja;
- pojavu određene reči ili imena na stranici.
changedetection.io podržava CSS i XPath selektore, praćenje JSON podataka, tekstualne okidače, uslovne akcije, rasporede provera, istoriju razlika i stranice koje zahtevaju izvršavanje JavaScript-a.
Kako sistem funkcioniše?
changedetection.io prvo preuzima stranicu i pravi početni snimak sadržaja.
Taj prvi snimak predstavlja početno stanje i uglavnom ne izaziva obaveštenje.
Prilikom sledeće provere pravi se novi snimak. Ako se sadržaj promenio, alat izračunava razliku i proverava postavljene filtere i uslove. Ako promena ispunjava pravila, poruka se prosleđuje servisu ntfy, a telefon prikazuje obaveštenje.
Najvažnije je da ne pratimo celu stranicu ako to nije potrebno.
Zaglavlje, reklame, brojači poseta, preporučeni proizvodi, vreme, kolačići i rotirajući baneri mogu se menjati pri svakom otvaranju. Zato ćemo izdvojiti samo cenu, listu konkursa ili drugi konkretan element.
Šta je potrebno?
Za ovaj tutorijal potrebno je:
- Windows 10 ili Windows 11;
- Docker Desktop;
- internet pregledač;
- Android ili iPhone telefon;
- ntfy aplikacija ili ntfy web aplikacija;
- javna adresa stranice koju želimo da pratimo.
Docker Desktop se preuzima sa zvanične Docker stranice.
Posle instalacije treba pokrenuti Docker Desktop i sačekati da Docker engine postane aktivan.
1. Provera Docker instalacije
Otvorite PowerShell i izvršite:
docker version
docker compose version
Obe komande treba da prikažu informacije o instaliranoj verziji.
Ako komanda docker nije pronađena, proverite da li je Docker Desktop pokrenut i ponovo otvorite PowerShell.
2. Kreiranje direktorijuma projekta
U PowerShell-u napravite poseban direktorijum:
New-Item -ItemType Directory -Path "C:\changedetection" -Force
Set-Location "C:\changedetection"
U njemu ćemo čuvati Docker Compose konfiguraciju.
Podaci aplikacije biće sačuvani u posebnom Docker volumenu, tako da ne nestaju prilikom običnog ažuriranja ili ponovnog kreiranja kontejnera.
3. Kreiranje Docker Compose konfiguracije
U direktorijumu C:\changedetection napravite fajl compose.yaml sa sledećim sadržajem:
services:
changedetection:
image: ghcr.io/dgtlmoon/changedetection.io:0.60.2
container_name: changedetection
hostname: changedetection
ports:
- "127.0.0.1:5000:5000"
volumes:
- changedetection-data:/datastore
environment:
- TZ=Europe/Belgrade
- PLAYWRIGHT_DRIVER_URL=ws://browser-sockpuppet-chrome:3000
- FETCH_WORKERS=2
- MINIMUM_SECONDS_RECHECK_TIME=60
depends_on:
browser-sockpuppet-chrome:
condition: service_started
restart: unless-stopped
browser-sockpuppet-chrome:
image: dgtlmoon/sockpuppetbrowser:latest
container_name: changedetection-browser
hostname: browser-sockpuppet-chrome
environment:
- SCREEN_WIDTH=1920
- SCREEN_HEIGHT=1080
- SCREEN_DEPTH=16
- MAX_CONCURRENT_CHROME_PROCESSES=2
shm_size: "2gb"
restart: unless-stopped
volumes:
changedetection-data:
name: changedetection-data
U trenutku pisanja vodiča aktuelna stabilna verzija changedetection.io aplikacije je 0.60.2.
Korišćenje konkretne verzije znači da se ponašanje aplikacije neće neočekivano promeniti nakon ponovnog preuzimanja Docker slike.
Ova konfiguracija pokreće:
- changedetection.io kontrolni panel;
- poseban Chrome proces za JavaScript stranice;
- trajni volumen za podešavanja i istoriju;
- najviše dva paralelna HTTP radnika;
- minimalni dozvoljeni interval od 60 sekundi.
Port je vezan za 127.0.0.1, pa kontrolni panel nije dostupan drugim uređajima u mreži niti javnom internetu.
Nemojte menjati adresu u 0.0.0.0 ako prethodno niste podesili autentifikaciju i HTTPS zaštitu.
4. Validacija konfiguracije
Pre pokretanja proverite da li je compose.yaml ispravan:
Set-Location "C:\changedetection"
docker compose config
Ako komanda prikaže obrađenu konfiguraciju bez greške, YAML struktura je ispravna.
Ako prijavi grešku, najčešći uzrok su pogrešna uvlačenja. YAML koristi razmake, a ne tab karaktere.
5. Pokretanje sistema
Pokrenite kontejnere:
docker compose pull
docker compose up -d
Proverite status:
docker compose ps
Oba servisa treba da imaju status Up ili Running.
Pregled poslednjih poruka iz dnevnika:
docker compose logs --tail 100
Zatim otvorite kontrolni panel:
Start-Process "http://127.0.0.1:5000"
Panel se može otvoriti i ručno preko adrese:
http://127.0.0.1:5000
Ako se pojavi changedetection.io kontrolni panel, osnovna instalacija je završena.
6. Sprečavanje prekida posle restarta ili sleep režima
Opcija restart: unless-stopped ponovo pokreće kontejnere kada se Docker engine aktivira. Ipak, Docker Desktop mora biti pokrenut.
U Docker Desktop podešavanjima uključite:
Start Docker Desktop when you sign in to your computer
U Windows podešavanjima otvorite:
Settings > System > Power & battery > Screen and sleep
Ako želite neprekidno praćenje, podesite da računar ne prelazi u sleep režim dok je priključen na napajanje.
Ekran može da se isključi. Bitno je da računar ne bude uspavan.
7. Podešavanje ntfy obaveštenja
ntfy koristi kanale koji se nazivaju topics.
Poruka poslata na određeni topic stiže svakom uređaju koji je pretplaćen na isti naziv.
Na javnom serveru ntfy.sh naziv topica praktično funkcioniše kao tajna adresa. Zato ne treba koristiti očigledne nazive kao što su:
moje-obavestenje
test
zoran
Napravite teško pogodiv naziv pomoću PowerShell-a:
$Topic = "web-alert-" + [guid]::NewGuid().ToString("N")
$Topic
Rezultat će izgledati približno ovako:
web-alert-7c4593439d994024ad7408fe6d93f1ab
Sačuvajte svoj rezultat. Nemojte koristiti topic prikazan u primeru.
Dodavanje topica na telefon
- Instalirajte ntfy aplikaciju sa Google Play-a, F-Droid-a ili App Store-a.
- Otvorite aplikaciju.
- Izaberite dodavanje nove pretplate.
- Kao server ostavite
https://ntfy.sh. - Unesite prethodno generisani topic.
- Potvrdite pretplatu.
Registracija nije obavezna za osnovni javni topic.
Naziv javnog topica ipak nije prava kontrola pristupa. Svako ko zna tačan naziv može pokušati da čita ili šalje poruke na njega.
Zato preko javnog topica ne treba slati:
- lozinke;
- pristupne kodove;
- lične podatke;
- sadržaj privatnih stranica;
- poverljive poslovne podatke.
8. Ručni test ntfy obaveštenja
U sledećoj komandi zamenite VAŠ_TOPIC svojim nazivom:
Invoke-RestMethod `
-Method Post `
-Uri "https://ntfy.sh/VAŠ_TOPIC" `
-Headers @{
Title = "Test obaveštenja"
Priority = "high"
Tags = "white_check_mark"
} `
-Body "Veza između Windows računara i telefona radi."
Ako je sve pravilno podešeno, telefon bi trebalo da prikaže test poruku.
Ako poruka ne stigne, prvo proverite:
- da li je topic potpuno isti na računaru i telefonu;
- da li ntfy ima dozvolu za obaveštenja;
- da li Android ograničava rad aplikacije u pozadini;
- da li internet veza radi na oba uređaja.
ntfy poruke su obični HTTP POST ili PUT zahtevi. Isti kanal kasnije može da se koristi za PowerShell skripte, backup poslove, kućne servere i druge aplikacije.
9. Povezivanje changedetection.io i ntfy servisa
U changedetection.io kontrolnom panelu otvorite:
Settings > Notifications
Notification URL za javni ntfy.sh topic izgleda ovako:
ntfy://VAŠ_TOPIC
Možete dodati viši prioritet i Markdown format:
ntfy://VAŠ_TOPIC?priority=high&format=markdown
changedetection.io koristi Apprise sistem za obaveštavanje. Za javni ntfy.sh server dovoljan je oblik ntfy://topic.
Izaberite opciju za slanje test obaveštenja.
Tek kada test poruka stigne na telefon, sačuvajte podešavanja.
Obaveštenja se mogu podesiti globalno ili posebno za svaki watch. Globalno podešavanje je jednostavnije, dok posebni topici omogućavaju odvojene kanale za:
- cene;
- konkurse;
- termine;
- važna upozorenja.
10. Kontrolisani test stvarne promene
Test obaveštenja potvrđuje samo vezu sa ntfy servisom. On ne potvrđuje da sistem pravilno preuzima, poredi i obrađuje stranice.
Za privremeni funkcionalni test može se koristiti javni JSON endpoint:
https://httpbin.org/uuid
Ova adresa pri svakom zahtevu vraća novu UUID vrednost.
Postupak:
- dodajte
https://httpbin.org/uuidkao novi watch; - sačekajte prvu proveru;
- prva vrednost postaće početni snimak;
- izaberite
Check now; - sačekajte završetak druge provere;
- otvorite Difference prikaz;
- proverite da li je UUID vrednost promenjena;
- proverite da li je ntfy obaveštenje stiglo.
Posle testa izbrišite ovaj watch, jer će se sadržaj menjati prilikom svake provere i stalno slati obaveštenja.
Ako test prođe, potvrđena su četiri dela sistema:
- preuzimanje stranice;
- čuvanje početnog snimka;
- otkrivanje razlike;
- slanje ntfy obaveštenja.
11. Dodavanje prve stvarne stranice
Na početnoj strani changedetection.io aplikacije nalazi se polje za unos adrese.
- Unesite URL javno dostupne stranice.
- Izaberite
Watch. - Sačekajte završetak prve provere.
- Otvorite
Edit. - Proverite
Preview. - Podesite interval provere.
- Sačuvajte podešavanja.
Za jednostavne stranice prvo koristite brži ugrađeni HTTP fetcher.
Za cenu ili konkurs obično je dovoljno proveravanje na svakih 30 ili 60 minuta.
Nemojte postavljati proveru na svakih nekoliko sekundi. Tako se nepotrebno opterećuje sajt i povećava mogućnost privremene blokade.
12. Praćenje cene proizvoda
Za proizvod postoje dva osnovna načina praćenja.
Metod A: ugrađeno praćenje cene
Mnoge internet prodavnice u HTML kodu imaju strukturirane podatke koji sadrže cenu, valutu i status dostupnosti.
changedetection.io može da prepozna te podatke i ponudi opciju Re-stock & Price detection.
Ako je opcija dostupna:
- otvorite
Edit; - uključite praćenje cene i dostupnosti;
- proverite prepoznatu valutu;
- proverite prepoznati iznos;
- unesite donju ili gornju granicu;
- sačuvajte podešavanje;
- pokrenite
Check now.
Na primer:
Pošalji obaveštenje kada cena postane manja od 50.000.
U tabu Conditions može se izabrati izdvojeni broj i operator less than.
Obavezno pritisnite dugme za proveru uslova. Interfejs treba da pokaže koju je brojčanu vrednost izdvojio i da li pravilo trenutno prolazi.
Metod B: praćenje samo elementa sa cenom
Ako automatsko prepoznavanje nije uspelo:
- promenite fetch metod na Chrome ili Playwright;
- sačuvajte podešavanje;
- pokrenite novu proveru;
- otvorite
Edit; - izaberite
Visual Filter Selector; - kliknite tačno na cenu proizvoda;
- proverite Preview;
- sačuvajte selektor.
Rezultat bi trebalo da sadrži samo cenu, na primer:
49.999 RSD
Ako Preview sadrži naslov, opis, preporuke i druge proizvode, selektor je preširok.
Ručni CSS selektor
Ako Visual Selector ne izabere dobar element, može se uneti CSS selektor:
.product-price
Drugi primer:
.product-details .current-price
Ručni XPath selektor
Moguće je koristiti i XPath:
//span[contains(@class, 'price')]
Naziv klase i struktura HTML-a razlikuju se od sajta do sajta. Selektori iz primera neće automatski odgovarati svakoj prodavnici.
Važno kod praćenja cena
Neke prodavnice prikazuju različite cene u zavisnosti od:
- lokacije;
- prijavljenog naloga;
- izabrane prodavnice;
- kolačića;
- članstva u programu lojalnosti;
- dostave;
- valute;
- aktivnog kupona.
Zato u Preview prikazu proverite da changedetection.io zaista vidi istu cenu koju očekujete.
Ako element sadrži staru i novu cenu, uslov može izdvojiti pogrešan broj. U tom slučaju suzite selektor samo na aktuelnu cenu.
13. Praćenje novog konkursa ili oglasa za posao
Kod konkursa ne treba pratiti celu naslovnu stranicu ustanove. Bolje je pratiti stranicu na kojoj se nalazi lista konkursa, oglasa ili javnih poziva.
Postupak:
- dodajte adresu stranice sa konkursima;
- otvorite
Edit; - označite samo listu objava pomoću Visual Selectora;
- otvorite
Filters & Triggers; - pronađite
Text filtering; - uključite odgovarajuće vrste promena;
- po potrebi dodajte ključne reči;
- postavite proveru na svakih 30 ili 60 minuta;
- sačuvajte podešavanje;
- proverite Preview.
Ako želite obaveštenja o novom sadržaju, uključite:
Added lines
Replaced or changed lines
Opciju Removed lines ostavite isključenu ako vas brisanje starih oglasa ne zanima.
changedetection.io preporučuje uključivanje i dodatih i promenjenih linija, jer način na koji se tekstualna razlika klasifikuje zavisi od sličnosti starog i novog sadržaja.
Ako ne želite da se isti oglas ponovo prijavi nakon promene redosleda, uključite:
Only trigger when unique lines appear
Ova opcija proverava da li se nova linija ranije već pojavljivala u sačuvanoj istoriji.
Ključne reči
Mogu se dodati izrazi poput:
programer
administrator
IT podrška
remote
javni poziv
konkurs
Keyword trigger se obrađuje bez razlikovanja velikih i malih slova.
Obaveštenje se šalje kada postoje oba uslova:
- stranica se promenila;
- novi izdvojeni sadržaj odgovara ključnoj reči.
Sama činjenica da je reč već prisutna na stranici ne znači da će obaveštenje stizati prilikom svake provere.
14. Praćenje pojave određenog teksta
Ako želite obaveštenje kada se pojavi određeni izraz, u delu Filters & Triggers dodajte:
Prijave su otvorene
Dostupno
Novi termin
Rezultati konkursa
Na stanju
Za preciznije pravilo otvorite Conditions i izaberite:
Text contains
Zatim unesite željeni izraz.
Uslov može biti:
Izdvojeni tekst sadrži "Na stanju".
Pritisnite dugme za proveru pravila kako biste videli da li uslov trenutno prolazi.
15. Praćenje nestanka određenog teksta
Nestanak teksta treba podesiti drugačije od njegove pojave.
Ako želite da budete obavešteni kada nestane izraz Rasprodato, možete koristiti jedan od dva pristupa.
Pristup A: uklonjene linije
U delu Text filtering uključite:
Removed lines
Zatim koristite filter ili selektor koji obuhvata status proizvoda.
Ovaj način je koristan kada želite da vidite koji je tekst uklonjen.
Pristup B: uslov da trenutni sadržaj više ne sadrži izraz
U tabu Conditions izaberite:
Text does not contain
Kao vrednost unesite:
Rasprodato
Obaveštenje će biti poslato kada se stranica promeni i kada trenutni izdvojeni sadržaj više ne bude sadržao tu reč.
Važno je da monitor obuhvata tačan element statusa. Ako selektor ne uključuje tekst Rasprodato, uslov će od početka izgledati kao ispunjen.
16. Kombinovanje više uslova
Uslovi mogu da koriste logiku AND ili OR.
Primer sa AND logikom:
Tekst sadrži "Na stanju"
Izdvojena cena je manja od 50.000
Obaveštenje se šalje samo kada su oba uslova ispunjena.
Primer sa OR logikom:
Tekst sadrži "Konkurs"
Tekst sadrži "Javni poziv"
Tekst sadrži "Oglas za posao"
Obaveštenje se šalje ako je ispunjen makar jedan uslov.
Svaki uslov treba pojedinačno testirati preko dugmeta za proveru pre nego što se watch ostavi da radi automatski.
17. JavaScript stranice
Ako Preview ne prikazuje cenu ili listu koju normalno vidite u svom pregledaču, sajt verovatno učitava sadržaj tek posle izvršavanja JavaScript-a.
U podešavanjima stranice promenite fetch metod sa brzog HTTP zahteva na Chrome ili Playwright.
Chrome metod koristi drugi servis iz Compose konfiguracije. On je sporiji i koristi više memorije, ali može da:
- izvrši JavaScript;
- sačeka dinamički sadržaj;
- napravi snimak ekrana;
- koristi Visual Selector;
- izvrši jednostavne browser korake.
Ne treba koristiti Chrome metod za svaki watch ako običan HTTP fetcher pravilno prikazuje potreban sadržaj.
18. Cookie prozor, izbor lokacije i Browser Steps
Neke stranice pre sadržaja prikazuju:
- cookie prozor;
- izbor države;
- izbor prodavnice;
- potvrdu jezika;
- dugme za prikaz rezultata;
- polje za pretragu.
U tabu Browser Steps mogu se dodati koraci kao što su:
- klik na dugme za prihvatanje kolačića;
- izbor države;
- unos teksta u polje;
- klik na dugme za pretragu;
- čekanje da se rezultat pojavi.
Posle izvršavanja koraka otvorite Visual Selector i izaberite završni sadržaj.
Praćenje stranica iza prijave zahteva dodatni oprez. Sačuvana sesija može sadržati kolačiće naloga. Za osetljive naloge bolje je koristiti zvanično obaveštenje ili API ako sajt takvu mogućnost nudi.
19. Kako ukloniti lažna obaveštenja
Najčešći problem nije propuštena promena, već previše nevažnih promena.
Ako obaveštenje stiže pri skoro svakoj proveri, uzrok je obično:
- trenutno vreme;
- datum poslednje posete;
- reklama;
- nasumična preporuka proizvoda;
- brojač pregleda;
- rotirajući baner;
- stanje korpe;
- identifikator sesije;
- dinamički redosled rezultata;
- različit cookie prozor;
- automatski generisan parametar.
Rešenje:
- pratite samo najmanji potreban deo stranice;
- koristite Visual Selector;
- koristite precizan CSS ili XPath selektor;
- dodajte promenljive delove u
Ignore Text; - zanemarite promene koje predstavljaju samo razmake;
- uključite samo Added i Replaced linije ako vas brisanje ne zanima;
- pogledajte Difference prikaz posle svakog lažnog alarma.
Dobro podešen monitor cene treba da poredi samo:
49.999 RSD
Ne treba da poredi kompletan HTML dokument sa stotinama promenljivih elemenata.
20. Pouzdana završna provera
Za svaki watch proverite sledeće:
- Preview prikazuje tačan sadržaj.
- Početni snimak je uspešno sačuvan.
- Send test notification stiže na telefon.
- Check now završava bez greške.
- Difference ne sadrži reklame, datum ili druge slučajne elemente.
- Interval provere nije nepotrebno kratak.
- Fetch metod odgovara stranici.
- Topic je potpuno isti na telefonu i u changedetection.io aplikaciji.
- Tekstualni filter prati odgovarajuće vrste promena.
- Svaki uslov prolazi pojedinačnu proveru.
- Windows ne prelazi u sleep režim.
- Docker Desktop se automatski pokreće.
Tek kada sve ove stavke prođu, watch treba ostaviti da radi automatski.
21. Backup podešavanja i istorije
Pre većeg ažuriranja korisno je napraviti backup Docker volumena.
Otvorite PowerShell:
Set-Location "C:\changedetection"
docker compose stop
Zatim napravite arhivu volumena:
docker run --rm `
-v changedetection-data:/source:ro `
-v "${PWD}:/backup" `
alpine:latest `
sh -c "tar -czf /backup/changedetection-backup.tar.gz -C /source ."
Ponovo pokrenite servise:
docker compose start
U direktorijumu C:\changedetection treba da se pojavi:
changedetection-backup.tar.gz
Arhiva sadrži podešavanja, listu praćenih stranica i sačuvanu istoriju.
22. Ažuriranje aplikacije
Pošto je u konfiguraciji navedena konkretna verzija, ažuriranje se obavlja kontrolisano.
Kada izađe novija stabilna verzija:
- proverite zvaničnu stranicu sa izdanjima;
- napravite backup;
- promenite broj verzije u
compose.yaml; - proverite konfiguraciju;
- preuzmite novu sliku;
- ponovo pokrenite servis.
Komande:
Set-Location "C:\changedetection"
docker compose config
docker compose pull
docker compose up -d
docker compose ps
23. Zaustavljanje i ponovno pokretanje
Privremeno zaustavljanje:
docker compose stop
Ponovno pokretanje:
docker compose start
Restart servisa:
docker compose restart
Uklanjanje kontejnera i mreže:
docker compose down
Ova komanda ne briše imenovani volumen.
Nemojte dodavati opciju -v ako želite da sačuvate podešavanja i istoriju.
24. Najčešći problemi
Kontrolni panel se ne otvara
Proverite:
docker compose ps
docker compose logs --tail 100 changedetection
Ako je port 5000 zauzet, promenite mapiranje:
ports:
- "127.0.0.1:5050:5000"
Panel se tada otvara na:
http://127.0.0.1:5050
Browser kontejner se stalno restartuje
Proverite:
docker compose logs --tail 100 browser-sockpuppet-chrome
Zatim proverite da li Docker Desktop ima dovoljno memorije i da li je shm_size pravilno naveden.
Na pojedinim platformama zvanična konfiguracija navodi da Chrome kontejner može zahtevati dodatnu privilegiju SYS_ADMIN. Ona ne treba da se dodaje automatski jer kontejneru daje šira prava. Prvo treba proveriti logove i dokumentaciju za konkretnu platformu.
Cena se vidi u pregledaču, ali ne i u Preview prikazu
Prebacite fetch metod na Chrome ili Playwright.
Ako se i dalje ne vidi, stranica možda zahteva:
- prihvatanje kolačića;
- izbor lokacije;
- izbor prodavnice;
- klik na dugme;
- prijavljeni nalog.
Stiže obaveštenje pri svakoj proveri
Otvorite Difference prikaz i pronađite element koji se stalno menja.
Sužite selektor ili dodajte taj element u Ignore Text.
Test ntfy poruka radi, ali nema pravih obaveštenja
Proverite:
- da li je notification URL pravilno unet;
- da li je obaveštavanje uključeno za konkretan watch;
- da li postoji promena posle početnog snimka;
- da li filter prihvata tu vrstu promene;
- da li uslov prolazi;
- da li Preview sadrži očekivani tekst;
- šta prikazuju logovi.
Logovi glavne aplikacije:
docker compose logs --tail 200 changedetection
Prva provera nije poslala obaveštenje
To je očekivano.
Prva provera pravi početni snimak. Obaveštenje se šalje tek kada kasniji snimak sadrži relevantnu promenu.
Sajt vraća 403, 429 ili CAPTCHA stranicu
To znači da je sajt odbio ili ograničio automatizovani zahtev.
Produžite interval i proverite uslove korišćenja sajta.
Ovaj vodič nije namenjen zaobilaženju CAPTCHA zaštite, autentifikacije ili ograničenja vlasnika sajta.
Obaveštenje kasni na Android telefonu
Proverite:
- dozvolu za obaveštenja;
- battery optimization;
- ograničenje rada u pozadini;
- Data Saver podešavanje;
- notification cooldown;
- zvuk i prioritet ntfy kanala.
25. Privatnost i korektno korišćenje
Lokalna instalacija znači da se lista praćenih stranica i istorija promena čuvaju u Docker volumenu na vašem računaru.
Kada koristite javni ntfy.sh, sadržaj obaveštenja prolazi kroz taj servis.
Zato poruka treba da sadrži samo potrebne informacije, na primer:
Cena proizvoda je promenjena. Otvorite praćenu stranicu.
Nemojte u obaveštenja stavljati lične podatke, pristupne kodove ili sadržaj privatnih stranica.
Treba poštovati pravila sajta koji pratite. Zvanični changedetection.io projekat naglašava da je korisnik odgovoran za usklađenost sa:
- uslovima korišćenja;
- pravilima pristupa;
- robots.txt smernicama;
- važećim propisima.
Razuman interval i praćenje samo potrebnog dela stranice predstavljaju tehnički i korektan pristup.
Zaključak
Kombinacija changedetection.io i ntfy rešava jednostavan, ali veoma čest problem: važna informacija postoji na sajtu, ali sajt nema sopstveni sistem obaveštavanja.
Posle početnog podešavanja moguće je automatski pratiti:
- cene;
- dostupnost proizvoda;
- konkurse;
- oglase za posao;
- termine;
- rezultate;
- dokumente;
- pojavu ili nestanak određenog teksta.
Sistem čuva istoriju promena i šalje poruku direktno na telefon.
Najvažniji deo nije samo dodavanje URL adrese. Pouzdan monitor zahteva precizan selektor, razuman interval, pravilno podešene uslove i dokaz da stvarna promena pokreće obaveštenje.
Kada se sve jednom pravilno podesi, ručno otvaranje iste stranice nekoliko puta dnevno više nije potrebno.