Stažení souboru přes wget

Le_Ze

  • ***
  • 150
    • Zobrazit profil
    • E-mail
Stažení souboru přes wget
« kdy: 13. 05. 2017, 11:28:20 »
Zdravím.
Bych potřeboval pomoct s tímto problémem.
Přihlásím se na jednu internetovou stránku přes firefox.
Chce to jméno, heslo a pak ještě pin.
Při přihlašovaní zaškrtnu přihlašovat automaticky.
Stáhnu soubor.
Když pak ve firefoxu vlezu do nástroje - stahovaní - kliknu na stažený soubor dam kopírovat stahovaný odkaz.
Zkopírovaný odkaz pak vložím do prohlížeče, vyskočí mi okno s dotazem, kam ho chci uložit.
V cookies jsem našel k té stránce autologin.
Bych potřeboval, aby se mi ten soubor stahoval automaticky třeba přes skript spouštění přes crona.
Jsem se dočet že cookies se dá  poslat i přes wget.
Pujde to vyřešit a jak na to?




Re:Stažení souboru přes wget
« Odpověď #1 kdy: 13. 05. 2017, 11:39:53 »
User firendly reseni cookies:

$ http example.org  User-Agent:Bacon/1.0  'Cookie:valued-visitor=yes;foo=bar'  X-Foo:Bar  Referer:http://httpie.org/

pri pouziti https://httpie.org/

Ty hodnotu cookie bud vydestiluj z FF, lepsi je ale v jednom dotazu pres httpie udelat login, z nej si vzit tu cookie a...


Ivan Nový

Re:Stažení souboru přes wget
« Odpověď #3 kdy: 13. 05. 2017, 11:42:44 »
Kód: [Vybrat]
wget -q -O /dev/null --save-cookies /dev/stdout --post-data 'u=user&p=pass' 'http://example.com/login' | wget -q -O - --load-cookies /dev/stdin 'http://example.com/private/page'

Le_Ze

  • ***
  • 150
    • Zobrazit profil
    • E-mail
Re:Stažení souboru přes wget
« Odpověď #4 kdy: 13. 05. 2017, 12:11:21 »
http://stackoverflow.com/questions/1324421/how-to-get-past-the-login-page-with-wget

JJ, toto jsem našel. a zkoušel.

Takto mi to na disku stahne ale misto toho co tam ma byt je uložena ta www stranka.
wget --content-disposition https://www.-------

wget --load-cookies cookies.txt \
     http://server.com/interesting/article.php

Tam kde je ten skript jsem vytvořil soubor cookies.txt a do něj skopiroval ten obsah s cookies.
Vypada takto
a%3B2%3A%7Cs%3A7%3A%22user_id%2%3Bs%3A5%3A%2262230%22%4Cs%3A3%3A%22key%22%3Bs%3A16%3A%22ecdf845b39bdaef%22%3B%7D

A nefunguje.Zas ta stažena stranka s WWW
Dělam něco špatně?


Le_Ze

  • ***
  • 150
    • Zobrazit profil
    • E-mail
Re:Stažení souboru přes wget
« Odpověď #5 kdy: 13. 05. 2017, 12:25:00 »
Hm,vzdavam to.
Koukam že to mam vše špatně.
Toto už je nad ramec mých znaloctí  :-\

Ivan Nový

Re:Stažení souboru přes wget
« Odpověď #6 kdy: 13. 05. 2017, 12:34:35 »
http://stackoverflow.com/questions/1324421/how-to-get-past-the-login-page-with-wget

JJ, toto jsem našel. a zkoušel.

Takto mi to na disku stahne ale misto toho co tam ma byt je uložena ta www stranka.
wget --content-disposition https://www.-------

wget --load-cookies cookies.txt \
     http://server.com/interesting/article.php

Tam kde je ten skript jsem vytvořil soubor cookies.txt a do něj skopiroval ten obsah s cookies.
Vypada takto
a%3B2%3A%7Cs%3A7%3A%22user_id%2%3Bs%3A5%3A%2262230%22%4Cs%3A3%3A%22key%22%3Bs%3A16%3A%22ecdf845b39bdaef%22%3B%7D

A nefunguje.Zas ta stažena stranka s WWW
Dělam něco špatně?

Zkuste ten druhý příklad, který jsem uváděl, v první wgetu se provede přihlášení podle účtu a hesla, uložení cookies, ve druhém wgetu pak načtení uložených cookies a stažení stránky.

Le_Ze

  • ***
  • 150
    • Zobrazit profil
    • E-mail
Re:Stažení souboru přes wget
« Odpověď #7 kdy: 13. 05. 2017, 13:07:22 »
Ono je problem že tam je to jmeno - heslo a pak to ještě chce ten pin.
To už jsem zkoušel takto
wget --user=NAME --password='PASSWORD' url

jj2

Re:Stažení souboru přes wget
« Odpověď #8 kdy: 13. 05. 2017, 13:14:26 »
https://addons.mozilla.org/en-US/firefox/addon/cliget/
toto ti vygeneruje kompletni url jak pro wget tak pro curl

Le_Ze

  • ***
  • 150
    • Zobrazit profil
    • E-mail
Re:Stažení souboru přes wget
« Odpověď #9 kdy: 13. 05. 2017, 13:56:34 »
jj2 - děkují moc, vyzkouším  ;)

Re:Stažení souboru přes wget
« Odpověď #10 kdy: 13. 05. 2017, 15:57:48 »
https://addons.mozilla.org/en-US/firefox/addon/cliget/
toto ti vygeneruje kompletni url jak pro wget tak pro curl

Firefox to umí sám o sobě - F12, panel síť, najít řádek tím požadavkem, který chceme opakovat v konzoli, pravou myší a dát "kopíroval jako curl". Pak vložit do linuxové konzole a otestovat. Je potřeba mít správnou verzi curl, aby byly všechny přepínače podporované.

Problém ale asi bude, že přihlašovací cookie budou asi časově omezené, takže pro trvalé univerzální řešení by bylo potřeba stejným způsobem odchytit požadavek na přihlášení a poté v druhém soubor stáhnout. Různé ochranné mechanismy to mohou ještě dále komplikovat. Nejlepší je, pokud služby nabízí přímo API pro realizaci dávkových úloh, ale to asi není váš případ :-)

.

Re:Stažení souboru přes wget
« Odpověď #11 kdy: 13. 05. 2017, 21:40:10 »
Citace: Le_Ze
Ono je problem že tam je to jmeno - heslo a pak to ještě chce ten pin.
Tak pošleš ještě ten pin.
Citace: Le_Ze
To už jsem zkoušel takto
wget --user=NAME --password='PASSWORD' url
A to má jako dělat co?

Le_Ze

  • ***
  • 150
    • Zobrazit profil
    • E-mail
Re:Stažení souboru přes wget
« Odpověď #12 kdy: 14. 05. 2017, 06:41:05 »
Tak jsem zkusíl ten curl, jak psal jj2 a funguje. ;)

Ještě dotaz.
Když jsem to dal do bash skriptu.
Da se nějak otestovat, jestlí se mu to podařilo stahnout?

nobody(ten pravej)

Re:Stažení souboru přes wget
« Odpověď #13 kdy: 14. 05. 2017, 15:47:04 »
Da se nějak otestovat, jestlí se mu to podařilo stahnout?

predpokladam ze obecne testovanm navatove hodnoty, 0 je ok, >0 zadrhel...
curl s paramentry && echo ok || echo problem

misto echo si tam samozrejme dej co potrebujes (pokud si overis ze to takto jde pro tvuj pripad), treba nastaveni promene kterou dale ve skriptu budes kontrolovat a podle toho delat kroky jako ukoncit program, nebo znovu pustit tahani souboru po 1 minute atd...

Le_Ze

  • ***
  • 150
    • Zobrazit profil
    • E-mail
Re:Stažení souboru přes wget
« Odpověď #14 kdy: 15. 05. 2017, 09:09:23 »
Ještě jeden problem.
Když soubor chcí stahnout znovu, napiše mi to, že soubor je jíž stažen.
Jak ho přepsat?
i když ho ručně smažu, a chci stahnout znovu tak to napiše že už byl stažen.