[Megoldva] wget data.hu auth

 ( bucko | 2014. január 22., szerda - 22:56 )

Sziasztok!

Próbálok letölteni a data.hu ról prémium accounttal, de nem megy az auth.
Ennyi találtam:

wget -auth-no-challenge --http-user USER --http-password PASSWD URL

Van valakinek ötlete a helyes auth-hoz?
Elsősorban olyan hozzászólásokat várok, akiknek működik. :)

Második kör:
Az a helyzet, hogy még a kérdés sem jó, még ahhoz is kevés volt a tudásom. :)
- A data.hu-nál a megadott link (legyen URL) letöltése után ki kell mazsolázni az oldalból a letöltő linket (legyen URLL). Ezzel nincs gond, ment eddig is.
- Az auth nem az url-be kell, hanem POST-ba, ami elég speciális.

Harmadik kör:
Letöltöttem a plowshare programot. Egészen jól működik, de definito nem megy a prémium account kezelése.

Negyedik kör:
Kicsit megpiszkáltam a plowshare data_hu modulját. Múúkodik!
Csak egy kicsit lassabban tölt le. :(

Megoldás:
Hibás volt a POST mentése, a jelszó után még 2 db & szeparátorral le kell zárni. Hála lx tagtársunknak, ez is kiderült.
A szükséges paraméterek: --save-cookies és --keep-session-cookies, valamint a login-hoz az index.php-re kell hivatkozni. Ekkor a cookie-be kerül a
PHPSESSID - session ID
datapremiumseccode - prémium session
__cfduid - .data.hu domain security override
Ezek után a --load-cookies minden további letöltéshez elegendő.

Példa script (kezdemény):
#!/bin/bash
# POST file:ct=dologin&login_passfield=login_e58fca4a10564c634cb43554631cdd2f&username=USER&login_e58fca4a10564c634cb43554631cdd2f=PASSWORD&&
Basedir=/work/Film/data
Out=${Basedir}/out
Log=${Basedir}/log
Postfile=${Basedir}/PF
Cookies=${Basedir}/cookies
Date=$(date +%Y%m%d%H%M%S)
Logfile=${Log}/${Date}
Inputlist=${Basedir}/dll
Linklist=${Basedir}/url
Loginurl=http://data.hu/login.php

# Login
wget --save-cookies ${Cookies} --keep-session-cookies --post-file ${Postfile} ${Loginurl}

# Get dl url list
for urls in $(cat $Inputlist)
do

wget -q -O - --load-cookies ${Cookies} ${urls}|grep "'http://ddl"|cut -d \' -f 2

done > $Linklist

# Download
wget --load-cookies ${Cookies} -i ${Linklist} -P ${Out}

A speed:
100%[===================================================>] 209,715,200 7.17M/s in 32s

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Bejelentkezel a kedvenc böngésződdel, megkéred, hogy írja ki neked textbe a sütigyűjteményt, aztán

wget --load-cookies $SUTIFAJL $URL

A kedvenc böngészőm a wget. :)

Csak nehogy egyszer wget érjen :)

Hát, nincs prémium accom, de: man wget http://explainshell.com/explain/1/wget

A --save-cookies --load-cookies részeket érdemes megnézni a --post-data mellett. A --post-data kileshető az auth formból.

Ez a helyes út! Csak nem működik! :(
A --save-cookies + --keep-session-cookies - ez utóbbi nem biztos, hogy kell - csak kettőt ment:
__cfduid és PHPSESSID
A brózer még a következőket:
username, hash, datapremiumseccode, __utma, __utmb, __utmc, __utmz

Mindez annak ellenére, hogy a kiküldött post data megegyezik a plowdown és a brózer esetén is.
A parancs:
wget --keep-session-cookies --post-file=pf --save-cookies=cookies http://data.hu/

A pf:
act=dologin&login_passfield=login_77fd15a6a4ab100246aa43e1825a04d1&target=%2Findex.php&t=&id=&data=&url_for_login=%2Findex.php%3Fisl%3D1&need_redirect=1&username=USER&login_77fd15a6a4ab100246aa43e1825a04d1=PASSWORD

A hosszú szám hex 32 jegyű random, természetesen az USER és a PASSWORD is helyes.

Tehát a kuki mentés: nem működik.
Bemásolt kuki esetén az auth: nem működik.
Nyomozok tovább...

Bő egy éve nincs prémiumom, és azelőtt egy évvel kalapáltam össze ezt, akkor döccenő nélkül működött a sütifájl kimentése után:

https://dl.dropboxusercontent.com/u/7658957/tmp/dh.sh

a szkriptben hivatkozott datahu_loginba ezt kopiztam akkoriban:

act=dologin&login_passfield=login_e58fca4a10564c634cb43554631cdd2f&username=eliksz&login_e58fca4a10564c634cb43554631cdd2f=b25efc1dfe64c83c0b4e30901fa7a24f&
&

Köszi, ez már valami!
Vizsgálom, referálok, de most rohannom kell.

Múúkodik!
Megoldás fenn!

Subscribe

királyság!

JDownloader. Letöltöd a telepítő nélküli változatot. Beállítod a programot (nyelv és hova töltsön). Beírod a data jelszót és fh nevet aztán mehet a letöltés.

A JDownloader sajnos nem fér el a wget paraméterei között. :)
Az egész móka arról szól, hogy
- levettem a windózomról a javát
- linuxon szeretnék letölteni
- nincs gui
- 64kB/s helyett 7,5MB/s sebességgel

A JD lassú. Azt sem tudja pontosan kirajzolni, hogy milyen gyorsan tölt le. :) Annak ellenére, hogy elég gyorsan tölt, de a firefox még annál is gyorsabban, :)

A másik ok a data.hu utóbbi időben jelentkező lassúsága és bizonytalansága. A JD ismétlési algoritmusa ezekre a hibajelenségekre nem tetszik, sajátot szeretnék alkalmazni.

Én így használom

wget -q --auth-no-challenge --http-user USER --http-password PASSWORD -i URL_LIST_FILE

Hát. Ez az ami nem authentikál, ezért 64.0K/s a letöltési sebesség. Erről szól a topic. :)

[Feliratkozás]

Okulás végett, kérlek másold ide a komplett scriptet!
köszi!

Sziasztok.

Köszi, én is épp ezen agyaltam. A kérdésem az lenne, hogyan juthatok hozzá a 'postfile'-ben lévő adatokhoz böngésző nélkül ?

Előre is köszi.

A POST értékét elő kell állítanod, így egy text sorban:

ct=dologin&login_passfield=login_RANDOM32&username=USER&login_RANDOM32&PASSWORD&&

A kitöltendő mezők:
RANDOM32 = 32 karakter hosszú hexadecimális véletlen szám, amelyet két helyre kell beírni.
USER = a felhasználóneved.
PASSWORD = a jelszavad.

Köszi szépen.
A RANDOM32 egy általam megadott, szabadon választott 32B véletlen szám ?
Másik kérdésem : hogyan lesz a 'valamicsoda' jelszóból pl. 'b25efc1dfe64c83c0b4e30901fa7a24f' ?
Esetleg DM5 ?

Nem értem a kérdést.

RANDOM32 = 32 karakter hosszú hexadecimális véletlen szám -> szerintem a "hash" nevű kukiba írják bele, valószínűleg nincs sok szerepe.
USER = fityiszkukac
PASSWORD = fityiszkukac_jelszava

Hol van itt az, hogy a valamicsoda jelszóból lesz valami?

Annyi történik, hogy sikeres bejelentkezés után a datapremiumseccode kukiba kerül egy 40B hosszú azonosító, és ez néhány napig nem jár le. Elméletileg nem kell mindig bejelentkezni, csak ha ez a session lejárt. Azaz brózerrel is bejelentkezek, kijelentkezek, és néhány napig tölthetek, mert emléxik rá.

Bár ez utóbbi már nem a kérdésre a válasz. Szóval homály esetén pontosítsd a kérdést!

Értem, szóval a jelszót csak simán beírom, nem kell semmiféle titkosító eljárással átkonvertálni.
Köszönöm.

Tehát pl.:
act=dologin&login_passfield=login_e58fca4a10564c634cb43554631cdd2f&username=fityiszkukac&login_e58fca4a10564c634cb43554631cdd2f=valamicsoda&&

Y