Scraper dohvaća podataka o vašim troškovima sa web stranica javnih i privatnih preduzeća u Kantonu Sarajevo.
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.
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.
- 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.
- 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.
- 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
- 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)
- 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.
- Provjera stanja računa je inače ovdje: http://www.toplanesarajevo.ba/korisnici/stanje-racuna
- Nije potreban nikakav login, dovoljna je samo šifra korisnika sa računa!
- 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!
- 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!
-
Kloniranje Repozitorija lokalno i instalacija potrebnih modula i biblioteka:
gti clone [email protected]: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
skriptuchmod +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 tetable
.
- 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
-
Opcija
-a
ili--fetch-all
pokušava dohvatiti podatke za sve setovane postavke uconfig.py
-
Opcija
-p
ili--providers
uz dodatno navedenu listu provajdera, moguće navesti nekoliko željenih provajdera a koji su prije toga setovani uconfig.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.
# 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
- 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 direktorijuproviders
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 [email protected]
@nardev
@gondzo