Hello,
Van néhány könyvelő cégem, akik több kliensnek könyvelnek. A mo.hu-n ennek megfelelően havi 3-400 értesítés halmozódik fel. Azt szeretném megoldani, hogy ne kelljen egyenként ráklikkelve letöltögetni az egyes pdf-eket, majd gyalog kinyomtatni, hanem egy script megoldhatná ezt crontab-ból. Perlben meg is írtam már a feldolgozó scriptet, csak azzal akadtam el, hogy wget-tel nem tudok a user nevében töltögetni. megadom a --http-user es --http-password paramétert, valamint a --no-check-certificate opciót, de csak egy üres lapot kapok. Valószínűleg nincs tárolt session-om a serveren, ill. cookie a gépemen.
Van valakinek ötlete, hogy lehet sessiont/cookie-t kezelni wget-tel?
köszi
- 5753 megtekintés
Hozzászólások
wget --help | grep cookie
?
- A hozzászóláshoz be kell jelentkezni
>wget --help | grep cookie
ez mar megvolt, de nem segitett. Probald ki a sajatoddal, neked sem lesz jo.
- A hozzászóláshoz be kell jelentkezni
a http-user http-password csak htpasswd nel mukodik. ki kell toltened a bejelentkezsi formot es azt postolni eloszor.
- A hozzászóláshoz be kell jelentkezni
wget --post-data=login=akarmi&pass=ize http://mo.hu/login.php --keep-session-cookies --save-cookies=mohu.dat
majd
wget http://mo.hu/ittapdf.pdf --keep-session-cookies --load-cookies=mohu.dat
persze a post-data csak pelda itt, tcpdumpold le, hogy pontosan mit kell kuldened a loginkor.
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
juj :)
nehogy mar tcpdump-al kelljen megnezni ilyet, nem beszelve arrol, hogy nem lenne tul olvasmanyos a remelhetoleg ssl-es kommunikacio
- A hozzászóláshoz be kell jelentkezni
Akkor mivel?
Nem kekeckedésből kérdezem, hanem tényleg jó volna tudni. Eddig csak sima http felett csináltam ilyen, ott még meg lehetett oldani.
- A hozzászóláshoz be kell jelentkezni
akkor pl firebug
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
Oh! Benéztem az évet rendesen. De a lenti hátha érdekel valakit! :)
openssl s_client?
openssl s_client -connect www.valami.hu:443
c
- A hozzászóláshoz be kell jelentkezni
Esetleg a Live HTTP Headers segíthet...
- A hozzászóláshoz be kell jelentkezni
ugye ha sikerül akkor a scriptel eggyütt megosztod velünk....
---------------------------------------------------------------------
„Az Univerzum már elég nagy és öreg ahhoz, hogy egy fél óráig vigyázzon magára.”
- A hozzászóláshoz be kell jelentkezni
>ugye ha sikerül akkor a scriptel eggyütt megosztod velünk....
Termeszetesen, nem hiszem, hogy csak nekem van ilyen bajom es azt sem, hogy az Apeh megkegyelmez a konyveloknek es valami automatizalhato verzioval all elo. :)
Sajnos csak holnap du. tudok foglalkozni vele.
- A hozzászóláshoz be kell jelentkezni
Haladok a dologgal:)
Mar le tudom tolteni a listat, ki tudom mazsolazni vele a nyugtakat es a visszaigazolasokat, elo tudom allitani a pdf-ek linkjeit, es le tudom tolteni a pdf-eket. Mar csak listazni kell, de most megelegeltem, mert azert az apeh-es fiuk mindent megtettek azert, hogy nehogy konnyen lehessen elobbre jutni:)
folyt kov. holnap...
Addig is egy kerdes: hogy nyomtassak, hogy mindenhol jo legyen?
A pdf-et direktben nem lehet atadni, kell egy pdf2postscript?
Milyen nyomtatas parancsra keszuljek? lpr?
- A hozzászóláshoz be kell jelentkezni
A pdf-et rakd le valahova, aztán a delikvens nyomja, ahogy tudja :-)
- A hozzászóláshoz be kell jelentkezni
>A pdf-et rakd le valahova, aztán a delikvens nyomja, ahogy tudja :-)
Egy egysegsugaru windows_user konyvelo? :O
Az egeszet ugy kepzelem, hogy a cron fogja inditani es beavatkozas nelkul mindent elintez. A konyvelo cegeimnel mindenhol van egy linux server sambaval, azon vannak az adatallomanyok, a klienseken nincs semmi. Ez raer cron alol toltogetni.
Azt hiszem a configba teszek egy $LPR_COMMAND valtozot, aztan mindenki kitolti maganak uri izles szerint. Nalam mindenhol cups van, az elvileg direktben tud pdf-et nyomtatni.
- A hozzászóláshoz be kell jelentkezni
cairo?
- A hozzászóláshoz be kell jelentkezni
>cairo?
Mi ellen?
Perl-ben van az egesz, mit csinaljak a cairo-val?
- A hozzászóláshoz be kell jelentkezni
pdf>ps
ha emlékeim nem csalnak perl-ből is használhatod, a pdf-et atnyomhatod egy ps stream-be, ami mehet közvetlenul a nyomtatóra. Ha kell írok neked egy progit pascalban hozzá. :)
- A hozzászóláshoz be kell jelentkezni
és igen:
http://cairographics.org/cairo-perl/
- A hozzászóláshoz be kell jelentkezni
"Milyen nyomtatas parancsra keszuljek? lpr?"
nem biztos hogy értem mi a kérdés, de
lpr file.pdf
is elég, vagy ha másik gépen van a nyomtató, akkor akár ssh-n keresztül, ha nincs cups:
cat file.pdf | ssh gep lpr
egyébként meg ha van hálózati megosztár, akkor:
lpr -P nyomtato file.pdf
- A hozzászóláshoz be kell jelentkezni
> Van valakinek ötlete, hogy lehet sessiont/cookie-t kezelni wget-tel?
Kipróbáltam, ilyen lett:
#!/bin/sh
USER=felh.nev
PASS=jelszo
PARMS="--load-cookies=mo.hu.cookies --keep-session-cookies --save-cookies=mo.hu.cookies --no-check-certificate"
wget $PARMS "--post-data=loginPage=1&username=$USER&password=$PASS" \
https://www.magyarorszag.hu/cimlap/pf/Login/loginflow/loginUser -O loginUser.html
wget $PARMS "https://www.magyarorszag.hu/allampolgar/szolgaltatasok/tarhely?\
requestsource=kozmuportlet&targetServiceName=FOG/FOGModul/UzenetLista/\
Beerkezett&elsorekord=1&rekordszam=10" -O berkezett.html
#
- A hozzászóláshoz be kell jelentkezni
Hello,
Ma megvolt az 1.0 beta teszt:)
Varom az epito jellegu kritikakat.
Most latom, hogy a hosszu sorok vege lemarad, ezert tordelem....
-cronbol minden honap 22.-en lefut es listaz.
- Konyvelo lanyok ellenorzik, majd kezzel torlik a sikeresen nyomtatott allomanyokat a mohu oldalon.
Problema:
- sikeresen megszerzem a letoltendo pdf nevet, de az apeh 404 hibaval kidob.
Fejlesztesi iranyok:
-- felvesem a 404 hibaval letolthetetlen file-okat egy hibalistara, majd egy napi cronbol probalgatom toltogetni.
-- a biztosan letoltott pdf-eket automatikusan torlom a mohu oldalon.
ket file a script:
1. const.pl
=========================================
#user's data
$USER="xxxxx";
$PWD="xxxx";
#nyugtak letoltese
$RECEIPT_DOWNLOAD=1;
#visszaigazolasok letoltese
$CONFIRMATION_DOWNLOAD=0;
#nyomtatas parancs (printf formatum)
$PRN_CMD="lp -h localhost:631 -d samsung %s";
#don't touch
$COOKIES="mohu.dat";
$WGET = "/usr/bin/wget";
$WGET_OPTIONS="$WGET --no-check-certificate --keep-session-cookies";
$WGET_CMD_OPTIONS = "$WGET_OPTIONS --load-cookies=$COOKIES";
$BASE_URL="https://www.magyarorszag.hu";
$STOCK_URL="$BASE_URL/allampolgar/szolgaltatasok/tarhely";
#login form
$LOGIN_HIDDEN="loginPage=1";
$LOGIN_USER="username";
$LOGIN_PASSWORD="password";
$LOGIN_CMD="$WGET_OPTIONS --save-cookies=$COOKIES --post-data=\"$LOGIN_HIDDEN&$LOGIN_USER=$USER&$LOGIN_PASSWORD=$PWD\" $BASE_URL/ugyfelkapu/bejelentkezve";
$LOGIN_OK="bejelentkezve";
$LOGIN_ERROR="";
$LOGOUT="$WGET_OPTIONS $BASE_URL:443/allampolgar/szolgaltatasok/tarhely/kijelenkezes?_nfls=false";
#list
$LIST_URL="\'$STOCK_URL?requestsource=kozmuportlet&targetServiceName=".
"FOG/FOGModul/UzenetLista/Beerkezett&elsorekord=#!#FIRST#!#&rekordszam=10\'";
$LIST_OUTPUT="list.html";
$LIST_CMD= "$WGET_CMD_OPTIONS -O $LIST_OUTPUT $LIST_URL";
$LIST_PATTERN="erkeztetesiszam=([0-9]+)";
$RECEIPT_PATTERN="Elfogad.+nyugta";
$CONFIRMATION_PATTERN="Visszaigazol";
#pdf
$PDF_LINK="\'$BASE_URL/ertesitesitarhely/letoltes?requestsource=kozmuportlet&targetServiceName=".
"FOG/FOGModul/UzenetLekerdezes/Ideiglenes&erkeztetesiszam=#!#ESZ#!#\'";
$PDF_CMD="$WGET_CMD_OPTIONS -O #!#PDF_NAME#!#.pdf $PDF_LINK";
$ERROR_LIST="error.txt";
=========================================
2. abevdownload.pl
=========================================
#!/usr/bin/perl
require "./const.pl";
use HTML::TableExtract;
open ERROR,">>$ERROR_LIST" or die "nem tudom megnyitni a hibalistat:$!\n";
&login or die "nem tudok bejelentkezni!\n";
&processList or die "nem tudom letolteni a listat\n";
&logout;
close ERROR;
exit 1;
sub login() {
if ( -e $COOKIES ) {
unlink($COOKIES);
}
#print "lcmd:$LOGIN_CMD\n";
system("wget $LOGIN_CMD");
if ( -e $LOGIN_OK ) {
unlink ($LOGIN_OK);
return 1;
}
unlink ($LOGIN_ERROR);
return 0;
}
sub processList() {
my $page=1;
while ( &processPage($page) ) {
$page+=10;
}
return 1;
}
sub processPage( \$ ) {
my $page=shift;
my $cmd =$LIST_CMD;
my $result;
$cmd =~ s/#!#FIRST#!#/$page/;
if ( -e $LIST_OUTPUT ) {
unlink ($LIST_OUTPUT);
}
print "$cmd\n";
system($cmd);
if ( -e $LIST_OUTPUT ) {
$result = &processHtml($LIST_OUTPUT);
unlink ( $LIST_OUTPUT);
return $result;
}
return 0;
}
sub processHtml( \$ ) {
my $fileName=shift;
my $found=0;
print "filename:$fileName\n";
$te = HTML::TableExtract->new( attribs => { class => infotable } );
$te->parse_file($fileName);
foreach $ts ($te->tables) {
foreach $row ($ts->rows) {
$_="@$row";
if ($RECEIPT_DOWNLOAD && /$RECEIPT_PATTERN/) {
$found=1;
unless ( &download ( $_ ) ) {
return 0;
}
}
if ($CONFIRMATION_DOWNLOAD && /$CONFIRMATION_PATTERN/) {
$found=1;
unless ( &download ( $_ ) ) {
return 0;
}
}
}
}
return $found;
}
sub download( \$ ) {
my $name = shift;
#print "$name\n";
my $link = $PDF_CMD;
if ( /^([^\-]+)\D+(\d{1,4})\.(\d{1,2})\.(\d{1,2})\D+(\d{1,2}):(\d{1,2})\D+(\d+)/ ) {
$esz ="$1$2$3$4$5$6$7";
$esz =~ s/\n//g;
$esz =~ s/ //g;
print "$esz\n";
$link =~ s/#!#ESZ#!#/$esz/;
$link =~ s/#!#PDF_NAME#!#/$esz/;
#print "pdflink:$link\n";
system($link);
sleep 5;
if (-e "$esz.pdf") {
if ( -s "$esz.pdf" > 0) {
print "printing:".sprintf($PRN_CMD, "$esz.pdf")."\n";
system(sprintf($PRN_CMD, "$esz.pdf"));
return 1;
}
else {
print ERROR "$esz.pdf 0 hosszú\n";
return 1;
}
}
return 0;
}
}
sub logout() {
return;
sleep 15;
system($LOGOUT);
if (-e $COOKIES) {
unlink($COOKIES);
}
}
1;
=========================================
- A hozzászóláshoz be kell jelentkezni
Kipróbáltam, de nekem nem jelentkezik be.
/usr/bin/wget: Unsupported scheme.
--11:14:40-- https://www.magyarorszag.hu/ugyfelkapu/bejelentkezve
=> `bejelentkezve'
Resolving www.magyarorszag.hu... 84.206.104.73
Connecting to www.magyarorszag.hu|84.206.104.73|:443... connected.
WARNING: Certificate verification error for www.magyarorszag.hu: self signed certificate in certificate chain
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://www.magyarorszag.hu:443/ugyfelkapu/sikertelenbejelentkezes [following]
--11:14:41-- https://www.magyarorszag.hu/ugyfelkapu/sikertelenbejelentkezes
=> `sikertelenbejelentkezes'
Connecting to www.magyarorszag.hu|84.206.104.73|:443... connected.
WARNING: Certificate verification error for www.magyarorszag.hu: self signed certificate in certificate chain
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
[ <=> ] 32.821 --.--K/s
11:14:41 (386.78 KB/s) - `sikertelenbejelentkezes' saved [32821]
FINISHED --11:14:41--
Downloaded: 32.821 bytes in 1 files
nem tudok bejelentkezni!
- A hozzászóláshoz be kell jelentkezni
probald kikommentezni a login fuggvenyben a print parancsot es nezd mg, mit ir ki?
ennek kell lennie:
/usr/bin/wget --no-check-certificate --keep-session-cookies --save-cookies=mohu.dat --post-data="loginPage=1&username=xxx&password=xxx" https://www.magyarorszag.hu/ugyfelkapu/bejelentkezve
lehetseges hiba: nem a /usr/bin/-ben van a wget...
bocs' most latom, hogy a wget lefut, csak nem tud bejelentkezni :)
- A hozzászóláshoz be kell jelentkezni
Ok, megvan a gond. A const.pl -ben rossz helyre írtam a felhasználónevet és a jelszót. Én hibáztam. :)
Jelenleg 2 pdf-et kellett volna leszednie, de csak az egyiket sikerült. A másik az error.txt-be került "0 hosszú" üzenettel. Úgy nézem, hogy az mohu hibája, mert böngészőből sem elérhető.
Nekem tetszik.
- A hozzászóláshoz be kell jelentkezni
igen, ezt lattam en is, a fejlesztes iranya arra lendul, hogy agresszivan gyomrozzuk a mohu-t, amig le nem toltodnek a hianyzo file-ok.
- A hozzászóláshoz be kell jelentkezni
Ugyanezt php-ra nem próbálta valaki? Vagy egyáltalán meg lehetne oldani php-ban? Van tárhelyem, crontab is, perl-t nem tudok futtatni rajta (itthon igen, de ezért legyen bekapcsolva a gépem?) Ja, csak letöltés kellene egyelőre. Ha van ötletetek, várom, érdemes-e nekiveselkednem.
- A hozzászóláshoz be kell jelentkezni
termeszetesen meglehet, nezd meg php.net/curl-t
- A hozzászóláshoz be kell jelentkezni
Köszönöm, majd megnézem hétvégén.
Jaj, mégse, akkor nem működik az e-magyarország...
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
subscribe
- A hozzászóláshoz be kell jelentkezni