Kako dobiti obaveštenje kada se promeni cena, konkurs ili bilo koji tekst na sajtu
Kako dobiti obaveštenje kada se promeni cena, konkurs ili bilo koji tekst na sajtu

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:

  1. periodično otvoriti zadatu adresu;
  2. izdvojiti samo deo stranice koji nas zanima;
  3. uporediti novi sadržaj sa prethodnim;
  4. sačuvati istoriju promena;
  5. poslati obaveštenje na telefon čim otkrije relevantnu razliku.

U ovom vodiču koristićemo dva besplatna alata otvorenog koda:

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:

powershell
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:

powershell
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:

yaml
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:

powershell
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:

powershell
docker compose pull
docker compose up -d

Proverite status:

powershell
docker compose ps

Oba servisa treba da imaju status Up ili Running.

Pregled poslednjih poruka iz dnevnika:

powershell
docker compose logs --tail 100

Zatim otvorite kontrolni panel:

powershell
Start-Process "http://127.0.0.1:5000"

Panel se može otvoriti i ručno preko adrese:

text
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:

text
Start Docker Desktop when you sign in to your computer

U Windows podešavanjima otvorite:

text
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:

text
moje-obavestenje
test
zoran

Napravite teško pogodiv naziv pomoću PowerShell-a:

powershell
$Topic = "web-alert-" + [guid]::NewGuid().ToString("N")
$Topic

Rezultat će izgledati približno ovako:

text
web-alert-7c4593439d994024ad7408fe6d93f1ab

Sačuvajte svoj rezultat. Nemojte koristiti topic prikazan u primeru.

Dodavanje topica na telefon

  1. Instalirajte ntfy aplikaciju sa Google Play-a, F-Droid-a ili App Store-a.
  2. Otvorite aplikaciju.
  3. Izaberite dodavanje nove pretplate.
  4. Kao server ostavite https://ntfy.sh.
  5. Unesite prethodno generisani topic.
  6. 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:

powershell
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:

text
Settings > Notifications

Notification URL za javni ntfy.sh topic izgleda ovako:

text
ntfy://VAŠ_TOPIC

Možete dodati viši prioritet i Markdown format:

text
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:

text
https://httpbin.org/uuid

Ova adresa pri svakom zahtevu vraća novu UUID vrednost.

Postupak:

  1. dodajte https://httpbin.org/uuid kao novi watch;
  2. sačekajte prvu proveru;
  3. prva vrednost postaće početni snimak;
  4. izaberite Check now;
  5. sačekajte završetak druge provere;
  6. otvorite Difference prikaz;
  7. proverite da li je UUID vrednost promenjena;
  8. 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.

  1. Unesite URL javno dostupne stranice.
  2. Izaberite Watch.
  3. Sačekajte završetak prve provere.
  4. Otvorite Edit.
  5. Proverite Preview.
  6. Podesite interval provere.
  7. 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:

  1. otvorite Edit;
  2. uključite praćenje cene i dostupnosti;
  3. proverite prepoznatu valutu;
  4. proverite prepoznati iznos;
  5. unesite donju ili gornju granicu;
  6. sačuvajte podešavanje;
  7. pokrenite Check now.

Na primer:

text
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:

  1. promenite fetch metod na Chrome ili Playwright;
  2. sačuvajte podešavanje;
  3. pokrenite novu proveru;
  4. otvorite Edit;
  5. izaberite Visual Filter Selector;
  6. kliknite tačno na cenu proizvoda;
  7. proverite Preview;
  8. sačuvajte selektor.

Rezultat bi trebalo da sadrži samo cenu, na primer:

text
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:

css
.product-price

Drugi primer:

css
.product-details .current-price

Ručni XPath selektor

Moguće je koristiti i XPath:

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:

  1. dodajte adresu stranice sa konkursima;
  2. otvorite Edit;
  3. označite samo listu objava pomoću Visual Selectora;
  4. otvorite Filters & Triggers;
  5. pronađite Text filtering;
  6. uključite odgovarajuće vrste promena;
  7. po potrebi dodajte ključne reči;
  8. postavite proveru na svakih 30 ili 60 minuta;
  9. sačuvajte podešavanje;
  10. proverite Preview.

Ako želite obaveštenja o novom sadržaju, uključite:

text
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:

text
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:

text
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:

  1. stranica se promenila;
  2. 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:

text
Prijave su otvorene
Dostupno
Novi termin
Rezultati konkursa
Na stanju

Za preciznije pravilo otvorite Conditions i izaberite:

text
Text contains

Zatim unesite željeni izraz.

Uslov može biti:

text
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:

text
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
Text does not contain

Kao vrednost unesite:

text
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:

text
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:

text
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.

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:

  1. klik na dugme za prihvatanje kolačića;
  2. izbor države;
  3. unos teksta u polje;
  4. klik na dugme za pretragu;
  5. č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:

  1. pratite samo najmanji potreban deo stranice;
  2. koristite Visual Selector;
  3. koristite precizan CSS ili XPath selektor;
  4. dodajte promenljive delove u Ignore Text;
  5. zanemarite promene koje predstavljaju samo razmake;
  6. uključite samo Added i Replaced linije ako vas brisanje ne zanima;
  7. pogledajte Difference prikaz posle svakog lažnog alarma.

Dobro podešen monitor cene treba da poredi samo:

text
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:

  1. Preview prikazuje tačan sadržaj.
  2. Početni snimak je uspešno sačuvan.
  3. Send test notification stiže na telefon.
  4. Check now završava bez greške.
  5. Difference ne sadrži reklame, datum ili druge slučajne elemente.
  6. Interval provere nije nepotrebno kratak.
  7. Fetch metod odgovara stranici.
  8. Topic je potpuno isti na telefonu i u changedetection.io aplikaciji.
  9. Tekstualni filter prati odgovarajuće vrste promena.
  10. Svaki uslov prolazi pojedinačnu proveru.
  11. Windows ne prelazi u sleep režim.
  12. 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:

powershell
Set-Location "C:\changedetection"
docker compose stop

Zatim napravite arhivu volumena:

powershell
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:

powershell
docker compose start

U direktorijumu C:\changedetection treba da se pojavi:

text
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:

  1. proverite zvaničnu stranicu sa izdanjima;
  2. napravite backup;
  3. promenite broj verzije u compose.yaml;
  4. proverite konfiguraciju;
  5. preuzmite novu sliku;
  6. ponovo pokrenite servis.

Komande:

powershell
Set-Location "C:\changedetection"
docker compose config
docker compose pull
docker compose up -d
docker compose ps

23. Zaustavljanje i ponovno pokretanje

Privremeno zaustavljanje:

powershell
docker compose stop

Ponovno pokretanje:

powershell
docker compose start

Restart servisa:

powershell
docker compose restart

Uklanjanje kontejnera i mreže:

powershell
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:

powershell
docker compose ps
docker compose logs --tail 100 changedetection

Ako je port 5000 zauzet, promenite mapiranje:

yaml
ports:
  - "127.0.0.1:5050:5000"

Panel se tada otvara na:

text
http://127.0.0.1:5050

Browser kontejner se stalno restartuje

Proverite:

powershell
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:

powershell
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:

text
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.

Zvanični izvori