Portál AbcLinuxu, 6. května 2025 14:12
wget -m url
udělal miror webu (mimochodem běžel 40 hodin než se zkopiroval). bohužel CMS má vytvořené URL schéma tak, že dokumenty jsou očíslované nějakým ID za databáze. Tvoří odkazy typu /zpravy/34245
. V originálním webu CMS z tohoto URL pošle hlavičku obsahující položky Content Type:
a Content Disposition:
obsahující Typ a Jméno souboru. Tyto informace se po wget -m
ztratí, soubor se stane objektem 34245 v adresáři a při práci z mirorem uživatel dostane jen soubory bez metainformací a prohlížeč neví, co s nimi udělat. soubory jsou různých typů pdf, doc, docx a xls/xlsx. jde to nějak napravit? a udělat miror jinak?
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://...
user.mime_type
pro typ souboru, user.mime_encoding
pro kódování, pro jméno souboru takový standardní atribut neexistuje (počítá se, že se tak jmenuje přímo soubor). S uvedenými atributy pak umí pracovat mod_mime_xattr
pro Apache. curl
umí některé rozšířené atributy nastavit, když použijete přepínač --xattr
. Pomocí přepínačů -D
nebo -w
byste si snad mohl uložit i původní jména souborů pro pozdější zpracování.
Pokud nechcete jít cestou přes rozšířené atributy, musel byste na ty původní (číselné) adresy dát přesměrování na novou adresu, kde už bude správné jméno souboru a server podle přípony správně určí typ souboru, který pošle klientovi. Když klient nedostane jméno souboru v Content-Disposition, použije obvykle jméno z URL, takže by soubory po uložení měly být i správně pojmenované.
http://alfa/
nicméně ve struktuře, třeba na str http://alfa/str/1
je odkaz na dokument http://beta/doku/v/adr/stukture/dokument.1.pdf
. Není k dokument.1.pdf žádný jiný přístup. server beta je neprohledávatelný a nejsou na něm struktury. jenom podá dokument (a tisíce jiných) a tedy přislušnou odpověd, když je přesné url. (je to server na způsob intranetu, kde pro konkrétní přesný objekt mohu vydefinovat vnější přístup). Je možné říci curl "začínáš sice s alfa, ale když tam bude odkaz na beta tak ho stáhni také a ulož do vedlejšího stromu"
curl
asi neumí rekurzivní stahování, to mne nikdy nenapadlo. wget
pro to má parametr -D/--domains
, kterým určíte, ze kterých domén má odkazy stahovat, a volbou -H
povolíte přecházet i na jiné domény. Asi by se hodilo pomocí wget
vytvořit seznam URL a ta pak stáhnout přes curl
, což je tedy dost neohrabané řešení…
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.