Portál AbcLinuxu, 6. května 2025 14:12

Dotaz: Statická kopie dynamického webu.

19.1.2018 19:17 lertimir | skóre: 64 | blog: Par_slov
Statická kopie dynamického webu.
Přečteno: 554×
Odpovědět | Admin
Řeším taková problém. Organizace by ráda k nějakému datu vypnula starý web založený na starem proprietálním CMS. Nicméně web obsahuje dost historických dokumentů, které jsou třeba zachovat. obsah vebu je cca 8GB. Moje idea byla taková, že bych pomocí 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?
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

19.1.2018 19:35 NN
Rozbalit Rozbalit vše Re: Statická kopie dynamického webu.
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud jde jen o dokumenty a vsechny jsou ve formatu http://web/zpravy/cislo muzes si napsat skript, ktery pobehne vsechna mozna cisla v URL, vyparsuje z HTML nazev a ulozi pod nazvem. To lze zvladnout v jedne smycce..

Pokud data nechces stahovat znova, bylo by asi mozne vytahat jen HTTP header, zariznout komunikaci pred stahovanim a opravit si soubory v adresarove strukture podle cisla.
20.1.2018 17:59 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Statická kopie dynamického webu.
No jednak to není jen v adresáři http://web/zpravy/ , ale i asi v 10 dalších. Ale hlavní problém je, že ty soubory se mohou jmenovat (jmenují) stejně. Například velmi častým názvem souboru je "Důvodová zpráva.docx" (popřípadě bez diakritiky), souborů ve struktuře jsou desítky tisíc a ty násobnosti stejného jména mohou jít do stovek.
19.1.2018 20:01 klingger | skóre: 18
Rozbalit Rozbalit vše Re: Statická kopie dynamického webu.
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ja používam tieto parameter pre wget, do pozornosti dávam hlavne parameter adjust-extension.
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://...
19.1.2018 22:38 Honza
Rozbalit Rozbalit vše Re: Statická kopie dynamického webu.
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi blby dotaz, ale HTTrack jsi zkousel? https://www.httrack.com/
20.1.2018 18:03 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Statická kopie dynamického webu.
Zkoušel. Zhroutil se po dvou dnech stahování a asi 500 000 objektech a 12GB dat. Překvapivé je wget stahoval jen cca 40 hodin, stáhl jen 9GB a vypadá to, že je to strukturálně všechno, nekončil s žádnou chybou.
20.1.2018 18:25 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Statická kopie dynamického webu.
Odpovědět | | Sbalit | Link | Blokovat | Admin
Budete potřebovat při ukládání někam uložit i ty informace o typu souboru a ideálně i názvu, a pak je zase použít na webovém serveru. Ideální by pro to byly rozšířené atributy – 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é.
20.1.2018 19:54 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Statická kopie dynamického webu.
Dik, curl vypadá, že dodá o dost více informací než wget. Zkusím s tím zabojovat. A ještě jedno rozšíření dotazu. Je možné pomocí curl i stáhnout následující situaci.

Stahuji server 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"
20.1.2018 20:23 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Statická kopie dynamického webu.
Aha, jenže 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í…
21.1.2018 18:50 trevor12 | skóre: 4 | blog: prvni_kroky_zacatecnika
Rozbalit Rozbalit vše Re: Statická kopie dynamického webu.
sice neznam reseni ale nebylo by jednodussi cely ten stary web server s cms proste nahodit na nejaky stary stroj a pristupovat k nemu nadale v ramci intranetu ?
21.1.2018 19:33 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Statická kopie dynamického webu.
Běh toho starého webu je zasmluvněn cenou ve vyšších desitkách tisích měsičně. Už to je dost strašné. Nad kódem není žádná kontrola a je na externích serverech mimo organizaci u dodavatelské firmy, a dodavatelské firmě odešli vývojáři, takže pravděpodobně kódu už nerozumí vůbec nikdo. Ale firma ho samozřejmě nedá. Jediná cesta je, jak ji vidím, odejít ze vztahu a nepřijít o data.
21.1.2018 19:36 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Statická kopie dynamického webu.
Můžou tam být bezpečností díry a bude jich přibývat, neustále se pak bojíte, kdy se co rozsype. I když to budete mít ve virtuálu, který snadno nahodíte jinde, nikdy nevíte, jaká je tam záludnost a jestli to celé nepřestane 1. 1. 2020 fungovat, protože tam je nějaké magické datum. Pokud jde udělat statickou kopii toho webu, je to podle mne velmi dobré řešení.
21.1.2018 22:06 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Statická kopie dynamického webu.
Děravé je to jako řešeto. Nevím na jakém přesně PHP to běží, ale nabírá to mezi jquery css pluginy a jsou i verze z roku 11 a 12 podle čísel. A pokud v generovaném kódu dostanu dost hodně zakomentovaných položek, tak to už není udržované, ale dolepované.
22.1.2018 08:08 NN
Rozbalit Rozbalit vše Re: Statická kopie dynamického webu.
Neslo by to misto HTTP tahat rovnou z databaze, nebo souboroveho systemu na serveru?
Josef Kufner avatar 21.1.2018 22:55 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Statická kopie dynamického webu.
Odpovědět | | Sbalit | Link | Blokovat | Admin
Udělat kopii wgetem je dobrá myšlenka a výsledek asi bude velmi dobře použitelný. Kouknul bych však ještě do databáze, zda by se dokumenty a hlavně jejich metadata nedala vytáhnout v neporušeném tvaru. Třeba by se pak dal udělat hezký export s odkazy na dokumenty, nebo by to mohlo i jít naimportovat do nového systému.
Hello world ! Segmentation fault (core dumped)
22.1.2018 14:56 trevor12 | skóre: 4 | blog: prvni_kroky_zacatecnika
Rozbalit Rozbalit vše Re: Statická kopie dynamického webu.
pokud by z nejakeho duvodu to wget ani httrack nezvladl, jeste by slo zkusit pustit na to

https://metaproducts.com/products/offline-explorer

jestli by si s tim neporadil lepe

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.