Fórum Ubuntu.cz

Ubuntu pro osobní počítače => Příkazový řádek a programování pro GNU/Linux => Téma založeno: jadd 17 Říjen 2009, 01:46:04

Název: "wget" pro celý adresář
Přispěvatel: jadd 17 Říjen 2009, 01:46:04
Potřeboval bych stáhnout celý adresář použitím "wget", zkoušel jsem to použitím odkazů v html soboru ale nijak se nedaří.
nejdříve jsem to zkusil:
Kód: [Vybrat]
daja51@daja51NB:/media/GENTOO/dist09$ sudo wget -4 -x http://gentoo.mirror.web4u.cz/distfiles/*[sudo] password for daja51:
Varování: HTTP nepodporuje žolíkové znaky.
--2009-10-17 00:52:52--  http://gentoo.mirror.web4u.cz/distfiles/*
Překládám gentoo.mirror.web4u.cz… 81.91.81.13
Navazuje se spojení s gentoo.mirror.web4u.cz|81.91.81.13|:80… spojeno.
HTTP požadavek odeslán, program čeká na odpověď… 404 Not Found
2009-10-17 00:52:54 CHYBA 404: Not Found.
Kód: [Vybrat]
daja51@daja51NB:/media/GENTOO/dist09$ sudo wget -4 -x http://gentoo.mirror.web4u.cz/distfiles/ -k gentoo.mirror.web4u.cz/distfiles/index.html
--2009-10-17 01:33:32--  http://gentoo.mirror.web4u.cz/distfiles/
Překládám gentoo.mirror.web4u.cz… 81.91.81.13
Navazuje se spojení s gentoo.mirror.web4u.cz|81.91.81.13|:80… spojeno.
HTTP požadavek odeslán, program čeká na odpověď… 200 OK
Délka: 7641606 (7,3M) [text/html]
Ukládám do: „gentoo.mirror.web4u.cz/distfiles/index.html“.

100%[=======================================================================================================================================>] 7 641 606    156K/s   za 40s     
Stahuje se vždy jen index.html
Název: Re: "wget" pro celý adresář
Přispěvatel: jfoot 17 Říjen 2009, 10:21:38
Zdravím Vás,

zde je řešení Vašeho problému :

http://codeidol.com/html/websiteckbk/Site-Planning-and-Setup/Downloading-All-Files-from-a-Site/

Jsou tam i další užitečné odkazy...
Název: Re: "wget" pro celý adresář
Přispěvatel: Firzen 17 Říjen 2009, 17:05:15
A taky nepoužívejte před příkazem wget sudo!  Ke stahování přece nepotřebujete práva roota.
Název: Re: "wget" pro celý adresář
Přispěvatel: nettezzaumana 17 Říjen 2009, 17:15:06
umh. manual a venuj pozornost -r
Název: Re: "wget" pro celý adresář
Přispěvatel: jadd 17 Říjen 2009, 17:18:30
Citace
A taky nepoužívejte před příkazem wget sudo!  Ke stahování přece nepotřebujete práva roota.
Kód: [Vybrat]
daja51@daja51NB:/media/GENTOO/dist09$ wget -4 -x http://gentoo.mirror.web4u.cz/distfiles/ *
--2009-10-17 17:16:24--  http://gentoo.mirror.web4u.cz/distfiles/
Překládám gentoo.mirror.web4u.cz… 81.91.81.13
Navazuje se spojení s gentoo.mirror.web4u.cz|81.91.81.13|:80… spojeno.
HTTP požadavek odeslán, program čeká na odpověď… 200 OK
Délka: 7645522 (7,3M) [text/html]
gentoo.mirror.web4u.cz/distfiles/index.html: Permission denied

Nelze zapsat do „gentoo.mirror.web4u.cz/distfiles/index.html“ (Permission denied).
--2009-10-17 17:16:26--  http://gentoo.mirror.web4u.cz/
Navazuje se spojení s gentoo.mirror.web4u.cz|81.91.81.13|:80… spojeno.
HTTP požadavek odeslán, program čeká na odpověď… 200 OK
Délka: 1558 (1,5K) [text/html]
gentoo.mirror.web4u.cz/index.html: Permission denied

Nelze zapsat do „gentoo.mirror.web4u.cz/index.html“ (Permission denied).
Název: Re: "wget" pro celý adresář
Přispěvatel: jadd 17 Říjen 2009, 17:33:55
Citace
umh. manual a venuj pozornost -r
Kód: [Vybrat]
wget --help
 -r,  --recursive          zapne rekurzivní stahování.
myslels tohle ? vyzkoušel jsem, zase jen ten html soubor , jinak sem nedočet tu stránku od: JFOOTa
Název: Re: "wget" pro celý adresář
Přispěvatel: jadd 17 Říjen 2009, 18:43:55
Něco jsem vyzkoušel i z manuálu (http://www.gnu.org/software/wget/manual/), ale zatím nic.
Název: Re: "wget" pro celý adresář
Přispěvatel: nettezzaumana 17 Říjen 2009, 18:56:46
umh. ok. na to musis jinak hochu.
jak jsi si sam vsiml, tak pri -rc to stahne jen index a informaci robots.txt, z cehoz by jeden mohl odtusit, ze maji nejakou primitivni obranu pred roboty, takze:
Kód: [Vybrat]
# stahne soubor html gentoo_mirror.index, kterej bude obsahovat jmena vsech balicku co tam jsou
wget http://gentoo.mirror.web4u.cz/distfiles/ -O gentoo_mirror.index

# pokud bys to chtel aktualizovat, tak si vzdy stahni novy jako gentoo_mirror.index2 a porovnej md5sumy aka
md5sum gentoo_mirror.index*

# potom uz si jen ze soubory vyndej jmena balicku napriklad takto:
perl -ne 'next if !s/.*"(.[^"]*(bz2|gz|zip))".*/$1 /g; print' gentoo_mirror.index

.. dal uz je to jasne ;) .. s tim uz si delej co chces, ale nepovazuju to za dobrej napad stahovat to cely .. tvoje aktualizovana databaze s informaci je lepsi. muzes si z toho stahnout co chces

pokud se ti nelibi reseni v perlu, lze to samozrejme udelat pomoci sedu nebo ceho chces jineho
Název: Re: "wget" pro celý adresář
Přispěvatel: jadd 17 Říjen 2009, 19:13:54
Citace
# potom uz si jen ze soubory vyndej jmena balicku napriklad takto:
perl -ne 'next if !s/.*"(.[^"]*(bz2|gz|zip))".*/$1 /g; print' gentoo_mirror.index
Nevím jak to použít, s perlem neumím a sedem taky ne asi mi nezbyde než to stáhnout po jednom ale ve firefoxu klikáním, protože s wget by to trvalo celej den.
Název: Re: "wget" pro celý adresář
Přispěvatel: Martin Kiklhorn 17 Říjen 2009, 19:47:28
já tedy nevím, ale není náhodou na ftp to samé?
ftp://gentoo.mirror.web4u.cz/distfiles/
Název: Re: "wget" pro celý adresář
Přispěvatel: nettezzaumana 17 Říjen 2009, 21:29:26
stahovat to cele je blbost. ale je-li libo:
Kód: [Vybrat]
## ulozi stranku, aktualnost lze kontrolat pomoci md5sum
wget http://gentoo.mirror.web4u.cz/distfiles/ -O gentoo_mirror.index

## vynda z ulozene stranky seznam balicku a ulozi je do souboru pkglist.txt
perl -ne 'next if !s/.*"(.[^"]*(bz2|gz|zip))".*/$1 /g; print' gentoo_mirror.index >pkglist.txt

## tohle napriklad stahne vsechy balicky v jejichz nazvu se vyskytuje "bash"
grep bash pkglist.txt | while read line; do wget -c http://gentoo.mirror.web4u.cz/distfiles/$line; done

stahovat to pojednom? hm. vzhledem k tomu ze tam je pres 30 tisic polozek:
> wc -l pkglist.txt
32808 pkglist.txt
Název: Re: "wget" pro celý adresář
Přispěvatel: jadd 17 Říjen 2009, 21:39:32
Vím že je to blbost, jelikož se stáhnou zbytečně i starší verze, proto jsem chtěl až zjistím jak se to dělá, přijít na to jak odfiltrovat ty nejnovější verze, zatím na to nemám mozkovou kapacitu. Časem snad...vývoj jde pomalu dopředu :D
Zatím budu stahovat pomocí gftp, ale jen vybranné.
A děkuji za snahu ;)
Název: Re: "wget" pro celý adresář
Přispěvatel: LuciusMare 17 Říjen 2009, 22:06:58
stahovat to cele je blbost. ale je-li libo:
Kód: [Vybrat]
## ulozi stranku, aktualnost lze kontrolat pomoci md5sum
wget http://gentoo.mirror.web4u.cz/distfiles/ -O gentoo_mirror.index

## vynda z ulozene stranky seznam balicku a ulozi je do souboru pkglist.txt
perl -ne 'next if !s/.*"(.[^"]*(bz2|gz|zip))".*/$1 /g; print' gentoo_mirror.index >pkglist.txt

## tohle napriklad stahne vsechy balicky v jejichz nazvu se vyskytuje "bash"
grep bash pkglist.txt | while read line; do wget -c http://gentoo.mirror.web4u.cz/distfiles/$line; done

stahovat to pojednom? hm. vzhledem k tomu ze tam je pres 30 tisic polozek:
> wc -l pkglist.txt
32808 pkglist.txt

Když má čas... ;D
Název: Re: "wget" pro celý adresář
Přispěvatel: nettezzaumana 17 Říjen 2009, 22:16:55
Vím že je to blbost, jelikož se stáhnou zbytečně i starší verze, proto jsem chtěl až zjistím jak se to dělá, přijít na to jak odfiltrovat ty nejnovější verze, zatím na to nemám mozkovou kapacitu. Časem snad...vývoj jde pomalu dopředu :D
Zatím budu stahovat pomocí gftp, ale jen vybranné.
A děkuji za snahu ;)


boze. rikals, ze pres ftp mas fup.
a co je tak tezkeho na tom stahnout si to jak jsem ti to napsal? co je tak nepochopitelneho na 3 krocich kdy delas kat & pejst?

misto `grep bash pkglist.txt` v poslednim prikazu si muzes dat cokoliv jineho nez bash .. umh. alespon zaklady Linuxu by jsi snad mohl znat.

man grep
man cat

hehe. neber to nijak osobne, je to jen prislovi, ale v tuto chvili me napada, ze ma snaha je "jako hazet perly svinim" ;)
Název: Re: "wget" pro celý adresář
Přispěvatel: mosqa 17 Říjen 2009, 22:28:02
ak to nemusi byt cez terminal tak by mohol posluzit aj tento (http://"https://addons.mozilla.org/en-US/firefox/addon/201") addon pre firefix
Název: Re: "wget" pro celý adresář
Přispěvatel: jadd 17 Říjen 2009, 23:17:02
Citace
# stahne soubor html gentoo_mirror.index, kterej bude obsahovat jmena vsech balicku co tam jsou
wget http://gentoo.mirror.web4u.cz/distfiles/ -O gentoo_mirror.index

# pokud bys to chtel aktualizovat, tak si vzdy stahni novy jako gentoo_mirror.index2 a porovnej md5sumy aka
md5sum gentoo_mirror.index*

# potom uz si jen ze soubory vyndej jmena balicku napriklad takto:
perl -ne 'next if !s/.*"(.[^"]*(bz2|gz|zip))".*/$1 /g; print' gentoo_mirror.index
Ono to opravdu funguje  :D Šloby ještě odfiltrovat kdy byl změněn(modified) nebo to jde jen na ten "jméno-verze.přípona"
Název: Re: "wget" pro celý adresář
Přispěvatel: nettezzaumana 18 Říjen 2009, 00:04:30
urcite ;), na root.cz a vubec vsude mozne je spousta tutorialu na jednoduche shellove skripty a regularni vyrazy.