Skip to content
/ scraper Public

Scraper dohvaća podataka o vašim troškovima sa web stranica javnih i privatnih preduzeća u Kantonu Sarajevo.

License

Notifications You must be signed in to change notification settings

nardev/scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SCRAPER

Scraper dohvaća podataka o vašim troškovima sa web stranica javnih i privatnih preduzeća u Kantonu Sarajevo.

Buy Me A Coffee

What's Scrapet? Awesome

Za potrebe prikaza u Home Assistant-u, napravio sam nekoliko modula koji uz adekvatno konfigurisanje mogu jednostavno da dohvate stanje dugovanja, uplata a nekada i trenutne potrošnje za usluge.

PROVIDERS

Ovo je bezvezan naziv za firme. Da bi uspješno dobili potrebne podatke koji su vam potrebni za ovu skriptu, slijedite naredne savjete. Takođe, u config.py fajlu je moguće dobiti dodatne opise za podatke.

BH TELECOM

  • Potrebna registracija na: https://moj.bhtelecom.ba/registracija
  • Prema uputama u config.py upisati svoj broj telefona, u skraćenoj (ex: 061123456) i proširenoj (38761123456) formi kao i password.
  • Skrejpanje trenutno uspješno radi samo za pregled mobilne telefonije, ako neko napravi za ostale usluge, rado ću dodati i to.

ELEKTROPRIVREDA D.D. BIH

  • Za registraciju slijediti upute ovdje: https://www.epbih.ba/register
  • Nakon registracije i prvog logina, dodajete mjerno mjesto koje ćete pratiti.
  • Iako je moguce dodati više mjesta koja pratite, ova skripta će samo "skrejpati" podatke za prvo koje se pojavi na listi.

KJKP RAD D.O.O. SARAJEVO

  • Aktivirati nalog prema uputama: http://www.rad.com.ba/naplatna1.htm
  • Šifra korisnika za pristup podatcima nalazi se na svakom mjesečnom računu.
  • Samo za PRVI pristup sistemu Lozinka je Referenca sa računa.
  • Nakon toga, unese te vašu lozinku i nju koristite u config.py

LOGOSOFT D.O.O. SARAJEVO

  • Login na naslovnoj stranici ovdje: http://www.lol.ba
  • Svi podatci su u vašem ugovoru.
  • Pošto je moguće imati više ugovora na jedno ime, potrebno je u config.py dodati i broj ugovora.
  • Nakon manuelnog logina, na lijevoj strani je zeleni box u kojem jasno, bold slovima stoji broj ugovora (ex: 12345-02-SA/19)

KJKP "SARAJEVO GAS" D.O.O.

  • Web za provjeru računa: https://www.sarajevogas.ba/provjeraracuna
  • Registracija nije potrebna.
  • Svi potrebni pdoatci su na računu!
  • !!! VAŽNO !!! Prilikom unosa imena korisnika u config.py potrebno je kucati u formatu "PREZIME IME" te pritom naše karaktere zamijeniti uobičajenim zamjenama.

KJKP TOPLANE SARAJEVO

VODOVOD I KANALIZACIJA SARAJEVO

  • Potrebno prvo izvršiti registraciju.
  • Pratiti upute na: http://www.viksa.ba/wrapper/stanje_racuna
  • Tek nakon registracije se dodaje mjerno mjesto u vaš nalog.
  • Iako je moguće imati više mjernih mjesta, ova skripta prati samo prvo na listi!

TELEMACH D.O.O. SARAJEVO

  • Login je prilično atipičan. Pokušat ću neku drugi put da pripremim i ovaj "skrejper".
  • Ako neko napravi skriptu, neka napravi pull request da to merdžamo!
  • Korisničko ime ćete odabrati prilikom registracije!
  • Lozinku ćete takodje odabrati prilikom registracije!

HOW TO USE THIS SHIT:

  • Kloniranje Repozitorija lokalno i instalacija potrebnih modula i biblioteka: gti clone git@github.com:nardev/scraper.git

  • Predpostavljam da ćete se snaci sa pip-om, u biti, van standardnih modula, potrebno vam je:

pip3 install beautifulsoup4 progress prettytable argparse
  • Svakako, prikupiti i aktivirati sve login podatke koji su opisani iznad!

  • Dodati svoje postavke u config.py, te pobrisati nodove za "provajdere" koje nećete koristiti!

  • Zgodno je, ali nije obavezno, postaviti izvrsne permisije za scraper.py skriptu chmod +x scraper.py. tako da ju je moguce pokretati sa:

user@host$ ./scraper.py
  • Skripta daje dva osnovna formata ispisa json koji je ujedno i defaultni te table.

PRIMJERI I OPCIJE

  • Osnovni ispis, skripta po defaultu pravi request za svakog provajdera koji je u config.py te vraća jedan json u kojem su svi pdoatci. Taj json nije formatiran!
user@host$ ./scraper.py
OPCIJE:
  • Opcija -a ili --fetch-all pokušava dohvatiti podatke za sve setovane postavke u config.py

  • Opcija -p ili --providers uz dodatno navedenu listu provajdera, moguće navesti nekoliko željenih provajdera a koji su prije toga setovani u config.py. Potom skripta pokušava dohvatiti samo te provajdere. Lista mogućih provajdera za sada je: ['bht', 'epbih', 'lol', 'sagas', 'tsa', 'vik']

  • Opcija -f ili --format uz opcije ['json', 'table'] formatira ispis u json ili tabelu.

PRIMJERI:
# Dohvatanje podataka za troskove "Vodovod i kanalizazciju" u formi tabele.
user@host$ ./scraper.py -p vik -f table

# Dohvatanje podataka za sve provajdere koji su podeseni, u formi tabele.
user@host$ ./scraper.py -a -f table

# Dohvatanje podataka za sve provajdere koji su podeseni, u json formi.
user@host$ ./scraper.py -a -f json

NAPOMENE

  • Moguće da se vođeno ovim primjerima skripti iz "providers/" može napraviti i još poneka skripta. Firme koje su meni bile ptorebne su već tu. Predpostavljam da bi u Kantonu Sarajevo odgovaralo da tu bude još i "OKI" i recimo "Sarajevo Stan" ali oni jednostavno nemaju pregled dugovanja online. Takođe, za sada nisam uspio bolje pogledati web sajt "Telemach"-a kao ni "BH Telecom" usluge za "MojuTV", "Fiksni Telefon" i "ADSL" priključak. Za sada uspješno "skrejpamo" samo "BH Telecom mobilnu.
  • Sve firme imaju potpuno drugačiji prikaz tako se nisam ni trudio da skripta vrati neki ispis koji je ujednačene forme za sve. Naprimjer VIK ako ste u pretplati, stavi vam "-" minus ispred cifre dugovanja. Ili recimo Toplane Sarajevo stave neke napomene u polje gdje se nalazi tekst za stanje pa takve stvari nisam brisao. Potom, neke firme kao Logosoft, na stanje vam stave odmah i troskove cijelog trenutnog mjeseca. Tako da ste po prikazu stalno u minusu.
  • Smatram da ako ste se jednom ulogovali na željeni servis, može te jednostavno shvatiti smisao sadržaj ovih ispisa.
  • config.py je linkovan kao simbolički link u direktoriju providers kako bi se moduli u istom mogli i zasebno koristiti. Ex: python3 bht.py
  • Ako slučajno bude nekih bug-ova i grešaka, molim vas da mi javite na vedran@nardev.org

KOD PISO':

@nardev
@gondzo

About

Scraper dohvaća podataka o vašim troškovima sa web stranica javnih i privatnih preduzeća u Kantonu Sarajevo.

Resources

License

Stars

Watchers

Forks

Languages