[megoldva] dijnet.hu -ról az összes régi számla letöltése egyszerűen

Fórumok

Hello!

Van nekem egy dijnet.hu-s előfizetésem. Megvan már pár éve, van benne jó sok számla. Szeretném ezeket letölteni, de sajnos csak egyenként lehet és azt is egy táblázatból kiválasztva, majd klikkelve. Számoltam, kb 2000 klikkelés lenne letölteni mindent, plusz persze az idő. Tud esetleg valaki valami kényelmes megoldást? (az oldalon a kontaktot kérdeztem, sajnos nem segített)

Hozzászólások

Próbáld meg HttpFox segítségével megfejteni a következőket:
- lista lekérés
- egy pdf letöltés
Ezek után némi türelemmel és script segítségével írhatsz olyan wget-et használó scriptet, ami mindent letölt.

Megpróbáltam, egyelőre nem működik.

Ahogy látom, a díjnet oldalán ez lenne a login rész:

<form name="loginform" action="/ekonto/login/login_check_password" method="post">
<input name="vfw_form" type="hidden" value="login_check_password" />
<input name="username" class="text_username" type="text" placeholder="Bejelentkezési név" />
<input name="password" class="text_password" type="password" placeholder="Jelszó" />
<input style="margin-top: 3px;" class="button" type="submit" value="Belépek" />
</form>

Ezek alapján a következővel próbálkoztam:

wget --save-cookies cookies.txt --keep-session-cookies --post-data 'username=FELHASZNALONEV&password=JELSZO' https://www.dijnet.hu/ekonto/login/login_check_password

Erre csinált egy cookies.txt fájlt, amiben ez van:
www.dijnet.hu FALSE /ekonto TRUE 0 JSESSIONID XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

és csinált egy login_check_password fájlt is, de sajnos ez alapján nem sikerült a login és érdekes, de az oldalon szerepel a "Program hiba" szöveg is. Lehet, hogy valami javascriptes dolog van mögötte? Esetleg valakinek van tippje?

Mivel, hogy kaptam egy olyan levelet, hogy

"Mivel a DijNet 2017-től midenkinek fizetőssé teszi a 18 hónapnál
régebbi számlák elérését, szeretném a segítséged kérni hogy
miként sikerült Seleniummal letöltened az összes számlát.
Én Seleniumot eddig még sosem használtam, így minden info, ötlet,
kódrészletért nagyon hálás lennék.

Előre is köszönöm a segítséged! "

Ezért írom, amire emlékszem:

  • a seleniumról IDE kb egy tesztelés támogató eszköz. Arra képes, hogy felvegyen makróba dolgokat, majd később lejátssza a makrót. Ezt egyébként tudja build folyamatból is, tehát pl programozásnál nagyon hasznos, hogy webes felület teszteket lehet vele csinálni. Vagy legalább is, amikor még programoztam, akkor ez volt a mondás :-) Bővebb infó: http://www.seleniumhq.org/ https://en.wikipedia.org/wiki/Selenium_(software)
  • selenium IDE letöltése és installálása pl firefox-hoz: https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/
  • a tools menüben lesz egy selenium IDE menü, válaszd ki
  • az új megjelenő ablakban, file --> open --> betölteni mind a szkripteket)
  • írd át a szkriptekben a LOGIN_XXXXXXX-eket a megfelelő azonosítóra.
  • loginolj be a weboldalon a díjnetbe
  • indítsd a szkriptet.

Fentartom, hogy akkor ez működött és nem mindenre emlékszem már. Ha jól emlékszem, akkor kézzel beloginoltam a díjnet oldalába és utána indítgattam a szkripteket. Ha azóta változott a díjnet oldala, akkor a fentiek már nem működnek, mert a selenium a weboldal felépítéséből tájékozódik. Ha azóta változott a weboldal (akár csak egy gomb ID-ja), akkor a szkripteken is változtatni kell. Leellenőrizni nem tudom a működésüket most, mert akkor megszüntettem a díjnetet, mert nem éreztem őket elég ügyfélközpontúnak.

Itt vannak a kódok is (igen, most ilyen bénán idemásolom őket. Az első sor a fájlnév, aztán a fájl tartalma):


dijbeszedot_kivalasztja_es_mindet_letolti.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="https://www.dijnet.hu/" />
<title>dijbeszedot_kivalasztja_es_mindet_letolti</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">dijbeszedot_kivalasztja_es_mindet_letolti</td></tr>
</thead><tbody>
<tr>
<td>store</td>
<td>1</td>
<td>x</td>
</tr>
<tr>
<td>label</td>
<td>kezdet</td>
<td></td>
</tr>
<tr>
<td>echo</td>
<td>'---------------------------------'</td>
<td></td>
</tr>
<tr>
<td>echo</td>
<td>${x}</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>/ekonto/control/szamla_letolt</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Számlakeresés</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>name=regszolgid</td>
<td>label=</td>
</tr>
<tr>
<td>select</td>
<td>name=regszolgid</td>
<td>label=díjbeszedő (LOGIN_XXXXXXX)</td>
</tr>
<tr>
<td>click</td>
<td>css=option.47338196</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=button_gen_N1012B</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//table[@id='listframetable_N1012F_scroll']/tbody/tr[${x}]/td[2]/a/div</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Letöltés</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>css=div.xt_link_cell__download</td>
<td></td>
</tr>
<tr>
<td>storeEval</td>
<td>storedVars['x']=${x}+1</td>
<td></td>
</tr>
<tr>
<td>gotoIf</td>
<td>${x}<555</td>
<td>kezdet</td>
</tr>
<!---->
</tbody></table>
</body>
</html>


elmut_kivalasztja_es_mindet_letolti.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="https://www.dijnet.hu/" />
<title>fogaz_kivalaszt_es_egyet_letolt</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">elmut_kivalasztja_es_mindet_letolti</td></tr>
</thead><tbody>
<tr>
<td>store</td>
<td>1</td>
<td>x</td>
</tr>
<tr>
<td>label</td>
<td>kezdet</td>
<td></td>
</tr>
<tr>
<td>echo</td>
<td>'---------------------------------'</td>
<td></td>
</tr>
<tr>
<td>echo</td>
<td>${x}</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>/ekonto/control/szamla_letolt</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Számlakeresés</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>name=regszolgid</td>
<td>label=</td>
</tr>
<tr>
<td>select</td>
<td>name=regszolgid</td>
<td>label=elmű (LOGIN_XXXXXXX)</td>
</tr>
<tr>
<td>click</td>
<td>css=option.47338196</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=button_gen_N1012B</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//table[@id='listframetable_N1012F_scroll']/tbody/tr[${x}]/td[2]/a/div</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Letöltés</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>css=div.xt_link_cell__download</td>
<td></td>
</tr>
<tr>
<td>storeEval</td>
<td>storedVars['x']=${x}+1</td>
<td></td>
</tr>
<tr>
<td>gotoIf</td>
<td>${x}<555</td>
<td>kezdet</td>
</tr>
<!---->
</tbody></table>
</body>
</html>


fogazt_kivalasztja_es_mindet_letolti.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="https://www.dijnet.hu/" />
<title>fogaz_kivalaszt_es_egyet_letolt</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">fogaz_kivalasztja_es_mindet_letolti</td></tr>
</thead><tbody>
<tr>
<td>store</td>
<td>1</td>
<td>x</td>
</tr>
<tr>
<td>label</td>
<td>kezdet</td>
<td></td>
</tr>
<tr>
<td>echo</td>
<td>'---------------------------------'</td>
<td></td>
</tr>
<tr>
<td>echo</td>
<td>${x}</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>/ekonto/control/szamla_letolt</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Számlakeresés</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>name=regszolgid</td>
<td>label=</td>
</tr>
<tr>
<td>select</td>
<td>name=regszolgid</td>
<td>label=főgáz (LOGIN_XXXXXXX)</td>
</tr>
<tr>
<td>click</td>
<td>css=option.47338196</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=button_gen_N1012B</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//table[@id='listframetable_N1012F_scroll']/tbody/tr[${x}]/td[2]/a/div</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Letöltés</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>css=div.xt_link_cell__download</td>
<td></td>
</tr>
<tr>
<td>storeEval</td>
<td>storedVars['x']=${x}+1</td>
<td></td>
</tr>
<tr>
<td>gotoIf</td>
<td>${x}<555</td>
<td>kezdet</td>
</tr>
<!---->
</tbody></table>
</body>
</html>


UPCt_kivalasztja_es_mindet_letolti.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="https://www.dijnet.hu/" />
<title>fogaz_kivalaszt_es_egyet_letolt</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">UPCt_kivalasztja_es_mindet_letolti</td></tr>
</thead><tbody>
<tr>
<td>store</td>
<td>1</td>
<td>x</td>
</tr>
<tr>
<td>label</td>
<td>kezdet</td>
<td></td>
</tr>
<tr>
<td>echo</td>
<td>'---------------------------------'</td>
<td></td>
</tr>
<tr>
<td>echo</td>
<td>${x}</td>
<td></td>
</tr>
<tr>
<td>open</td>
<td>/ekonto/control/szamla_letolt</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Számlakeresés</td>
<td></td>
</tr>
<tr>
<td>select</td>
<td>name=regszolgid</td>
<td>label=</td>
</tr>
<tr>
<td>select</td>
<td>name=regszolgid</td>
<td>label=UPC (LOGIN_XXXXXXX)</td>
</tr>
<tr>
<td>click</td>
<td>css=option.47338196</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=button_gen_N1012B</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//table[@id='listframetable_N1012F_scroll']/tbody/tr[${x}]/td[2]/a/div</td>
<td></td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Letöltés</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>css=div.xt_link_cell__download</td>
<td></td>
</tr>
<tr>
<td>storeEval</td>
<td>storedVars['x']=${x}+1</td>
<td></td>
</tr>
<tr>
<td>gotoIf</td>
<td>${x}<555</td>
<td>kezdet</td>
</tr>
<!---->
</tbody></table>
</body>
</html>

Köszi, én kicsit átalakitottam, hogy ne töltse újra mindig a listát és ne kelljen a scriptbe beleirni az azonositókat. (nekem csak upc van benne, igy csak azzal próbáltam)
Bemész kézzel a számlakeresésbe, kiválasztod az azonositót (leszűröd akár dátumra) keresésgomb, hogy bejöjjön a lista és utána inditod a scriptet:

http://pastebin.com/KAESSePK

Még az xml letöltést is bele lehetne rakni...

A pause(1000) nekem kellett a számlaletöltés click után, különben néha kiakadt.

(ja a selenium mellé nekem ezt a plugint is fel kellett tegyem: https://addons.mozilla.org/hu/firefox/addon/flow-control/ )

Köszönöm a tanácsot! Igen, gondoltam erre, de a firefox valami sqlite DB-ben tárolja a cookie-kat, ha jól láttam és onnan kiszedni macera lett volna.

plusz a wget-tel szenvedvem egy kicsit, nem biztos, hogy meg lehet oldani a javascript miatt. Seleniummal egyszerű volt megoldani a dolgot.

Köszi a hozzájárulást mindenkinek, hatalmas segítség volt, pedig nem értek ám a webfejlesztéshez... :)

100-at akartam írni, de egy 0 lemaradt. Mondjuk nem olvastam el, hogy ennyi pénzért garantálják-e, hogy meg is marad minden számla..
Nem tárhely szolgáltatás. Általánosságban elmondható, hogy szolgáltatásnál van egy fix költség, valószínűleg nem a felhasznált MiB-ek befolyásolják leginkább.

Software is like sex, it's better with a penguin. :D (r)(tm)(c) آكوش

köszi, ez nagyon hasznos!
tipp: A password argumentum lehetne opció, és ha nincs akkor 'read' kérné be.

bugreport: "Csat. M&ucirc;v. Zrt." :)

szerk
most nézem a kódot. ezen lehet egyszerűsíteni valami ilyesmit:
s/á/a/g; s/Á/A/g
s/é/e/g; s/É/E/g
s/í/i/g; s/Í/I/g
s/û\|ú\|ü/u/g; s/Û\|Ú\|Ü/U/g
s/õ\|ó\|ö/o/g; s/Õ\|Ó\|Ö/O/g

&([a-zA-Z])[a-zA-Z]+;
Az első részmintára cseréled.

szerk2
ERROR: exit code not zero of command: INVOICE_COUNT=$(echo "${INVOICES}" | wc -w)

Erről felrémlett az a kódrészlet, amikor valaki annyira, de annyira ügyes volt, hogy str_replace-kkel gányolt át egy UCS-2-s szöveget UTF-8-ra, aztán csodálkozott, hogy mindig jött "valami idióta hangjegy karakter", ahelyett, hogy használta volna az iconv-ot.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Nálam is, már keresem az okát. Az biztos, hogy nem az echo-ba hal bele a script, hanem később.

szerk
grep -q 'href="szamla_letolt"' lép ki 1-es hibakóddal (nincs match). Viszont ha lementem a kimenetet, azt megnyitom editorban és úgy keresem a keresett szöveget, akkor ott meg van találat.

szerk2
a for ciklus első sorát kell módosítani így:
dijnet "control/${INVOICE}" | iconv -f iso8859-2 -t utf-8 | grep 'href="szamla_letolt"' || die

Az a gond, hogy a kérdéses sorban van egy ő betű, ami megzavarja a grep-et. Hogy a többi szolgáltatónál miért nincs az jó kérdés.
Env: osx 10.12.2
grep (BSD grep) 2.5.1-FreeBSD

Nálam is elhasalt, de legalább megtaláltam, hogy melyik számlánál.
A "Telekom mobil" szolgáltató olyan során, ahol a rendes (16 karakter, csak szám) számlaszám helyett a "Részletfizetés 2016.01" szöveg van a Számlaszám oszlopban. Lehet, hogy ez borítja meg?
Amúgy összeszámolta, hogy 44 számla van és 16-ot hiba nélkül le is töltött. A 17.-nél, ami a "Részletfizetés", annál szállt el.

Szerk1:
Annyit találtam még, hogy más a href szerkezete.
Normál számlánál ez:
href="szamla_select?vfw_coll=szamla_list&vfw_coll_index=0&vfw_rowid=15&vfw_colid=szamlaszam|egyenleginfo_0"
Részletfizetésnél meg ez:
href="/ekonto/control/szamla_select?vfw_coll=szamla_list&vfw_coll_index=0&vfw_rowid=16&vfw_colid=fizhatdat|R"

Mikor a 81. sorban a for-ciklusban a "control/" után fűzzük a href-et, akkor már invalid URL lesz:
"control//ekonto/control/szamla_select..." és kampec.
A HREF-ből ki kellene pucolni a felesleges "/ekonto/control/" string-et feldolgozás előtt, nem?

Szerk2: Megoldás!
A 78. sor végére betettem még egy 'sed' hívást, ami kiszedi.
...| sed 's/href="\([^"]*\)"/\1 /g;s/\&/\&/g' | sed 's/\/ekonto\/control\///g')
Ezek után hiba nélkül lefutott minden szolgáltató minden számlájára NÁLAM!

nekem nem volt xmllint telepítve (tudom olvassak, emlékszem 27-én néztem, hogy biztos nem lesz ilyenem, de most fogtam bemásoltam futtattam, nem olvastam), ha már van if which pv, akkor ugyanez wget, xmllintre is mehet :).
külső parancsokat én változóba szoktam tenni ráadásul abszolút elérési úttal, mert evil népek odatesznek neked egy wgetet.


++ wget --quiet --output-document=- --load-cookies /tmp/tmp.S9iWNk9LXe --save-cookies /tmp/tmp.S9iWNk9LXe --keep-session-cookies --post-data '' https://www.dijnet.hu/ekonto/control/szamla_search
++ xpath '//select[@name="szlaszolgid"]/option[string-length(@value)!=0]'
++ xmllint --html --xpath '//select[@name="szlaszolgid"]/option[string-length(@value)!=0]' -
+ PROVIDERS=
++ PREV_COMMAND='PROVIDERS=$(dijnet "control/szamla_search" | xpath '\''//select[@name="szlaszolgid"]/option[string-length(@value)!=0]'\'')'
++ THIS_COMMAND='[ -n "${PROVIDERS}" ]'
+ '[' -n '' ']'
++ PREV_COMMAND='[ -n "${PROVIDERS}" ]'
++ THIS_COMMAND='die "not able to detect service providers"'
+ die 'not able to detect service providers'
+ '[' -z 'not able to detect service providers' ']'
+ echo 'ERROR: not able to detect service providers'
ERROR: not able to detect service providers

pl. 12+:
WGET=/usr/bin/wget
XMLLINT=/usr/bin/xmllint

-32  xmllint --html --xpath "$1" - 2>/dev/null
+32  ${XMLLINT} --html --xpath "$1" - 2>/dev/null

-38  wget \
+38  ${WGET} \

más, a:


    INVOICE_DOWNLOAD=$(dijnet "control/szamla_letolt")
    INVOICE_NUMBER=$(echo "${INVOICE_DOWNLOAD}" | xpath '//label[@class="title_next_s"]/text()' | sed 's/\//_/g;s/ //g')
    TARGET_FOLDER=$(echo "${PROVIDER}/${INVOICE_NUMBER}" | sed 's/ \+/_/g')

Számlaszám-Kiállítás dátuma könyvtárat készít. Hogyan lehetne ez dátum-számlaszám?

Korábban nem tudom hogy volt, de most a "title_next_s" a számlaszámot és a Fizetési határidő-t tartalmazza egyben, vagyis a "Fizetendő számlák >>" utáni részt az oldal felső sorából.

A Kiállítás dátuma a <label class="">Kiállítás dátuma:</label> utáni első <div class="xt_field">2020.01.06</div> class-ból szedhető ki. Ehhez én most hülye vagyok, de nekem is jobban tetszene a "Számlaszám-Kiállítás" dátuma könyvtárnév. Ehhez még a számlaszámot is külön ki kellene szedni a "Számlaszám:" label után...

Valaki esetleg? :-)

Ha nem is a legszebb megoldással, de működik!

A 92-93 sorokat cseréltem le 3 módosított sorra:

#    INVOICE_NUMBER=$(echo "${INVOICE_DOWNLOAD}" | xpath '//label[@class="title_next_s"]/text()' | sed 's/\//_/g;s/ //g')
#    TARGET_FOLDER=$(echo "${UTF8_PROVIDER}/${INVOICE_NUMBER}" | sed 's/ \+/_/g;s/\.\//\//g')
    INVOICE_DATE=$(echo "${INVOICE_DOWNLOAD}" | xpath '//div[@id="tab_szamla_letolt"]/table/tr[1]/td/div/table/tr[3]/td[2]/div/text()' | sed 's/[^0-9]*//g')
    INVOICE_NUMBER=$(echo "${INVOICE_DOWNLOAD}" | xpath '//div[@id="tab_szamla_letolt"]/table/tr[1]/td/div/table/tr[3]/td[4]/div/text()' | sed 's/\//_/g;s/ //g')
    TARGET_FOLDER=$(echo "${UTF8_PROVIDER}/${INVOICE_DATE}_${INVOICE_NUMBER}" | sed 's/ \+/_/g;s/\.\//\//g')

A Dátumot és a Számlaszámot külön szedem ki és a mappa nevét ezekből fűzöm össze.

Ellenőrizzétek légyszi és ha máshol is ok, akkor mehet a kódba @woland ;-)

Köszi!

Ez a díjnet több szempontból szánalmas oldal.

Sok esetben (nem mindig) nem lehet url-ről vagy új ablakban nyitni dolgokat. Ha a számlák listájánál pl megnyitnál többet egymás után új ablakban, akkor ugyanazt az egyet mutatja, és az első kivételével mindegyiknél ott a figyelmeztetés: "Kérjük csak az oldalon található gombokat és hivatkozásokat használja!"

Kedves fejlesztők, talán tessék megtanulni hogy működik egy böngésző, figyelembe venni az urleket, a vissza gombot, és az új lapfülön megnyitás lehetőségét...

Hali!
Nekem ma a második számla betöltésekor hasal el.
Azt nem tudtam megállapítani, hogy a számla-listára visszalépéssel van gondja vagy a második számla-oldal betöltésével.
Valaki tesztelte mostanában? Október után?
Köszi!

Nekem sem igazán működik vagy én nem tudom használni... A bejelentkezésen sem jutok túl.
Valaki tudna írni pár sort hogyan kell használni...
THX

Nálam működik egy kis módosítás kellett hozzá. Az egyik gond az volt, hogy a szar karakter kódolás miatt a grep nem találta meg hogy a belépés sikeres volt-e vagy sem, a másik gond pedig az volt, hogy megváltozott az a html kód amit sikeres belépés esetén kiírt.

A login rész (nálam 57. sortól) most így néz ki:


printf "login... "
dijnet "login/login_check_password" "vfw_form=login_check_password&username=${USER}&password=${PASS}" \
| iconv -f ISO-8859-2 | grep -q "Bejelentkezési név: <strong>${USER}" || die "login failed"
echo OK

és ezzel működik is (macOS-en használom).
Ami változott: lefut egy ICONV ami 8859-2-ből az rendszer karakterkészletére fordítja, illetve a "<strong>${USER}" keresi a sikeres belépés feltételeként (azthiszem ott </em>${USER}) volt.

nálam ez van:

login... OK
query service providers... ERROR: not able to detect service providers
Terminated

pedig van 2 megszűnt és 2 aktív providerem is :( how to debug?

Ide írom, hogy meglegyen, mert nekem kezdőnek gondot okozott:

Ha a script-et sh-val futtatom (sh ./dijnet-dump.sh) akkor nem találja meg sem az xmllint, sem a perl hívásokat. Gondolm a PATH kezeléssel van gondja.

A fenti dependeny hibát is ez okozta nálam és a "query service providers..." rész is ezért szállt el.

Ha bash-ból hívom, akkor megtalálja az útvonalakat és hiba nélkül lefut az egész!

Amikor csak ./dijnet-dump.sh formában indítjuk, akkor mitől függ, hogy melyik shell-ben futtatja? Egyszerűen ami a "$ echo $SHELL"-ben ki van választva?

"Amikor csak ./dijnet-dump.sh formában indítjuk, akkor mitől függ, hogy melyik shell-ben futtatja? Egyszerűen ami a "$ echo $SHELL"-ben ki van választva?"

Hint: shebang. Jelen esetben tehát a /bin/bash hívódik meg a script futtatására.

Esetleg Digi számlákhoz valaki nem akar csinálni ilyet ? :)

Ehhez, meg pár más közüzemi céghez írok api klienst, amivel le tudom tölteni a számlát, illetve tudok óraállást diktálni.

Jelenleg elvan törve a letöltő, mert módosítottak valamit az oldalon, reményeim szerint a héten megjavítom.

https://github.com/ProZsolt/dijnet