Vytěžování stránek

jak získat cizí skripty, obrázky a soubory

Tohle chci taky - Přístupnost prvků - Metody vytěžování - Ukládáhní HTML - Analýza HTML kódu - Kopírování HTML kódu - Parazitní formuláře - Využití cache paměti - Stahovací programy - Analýza http hlaviček - Použití stažených souborů - Autorská práva

Tohle chci taky!

Každý autor webu si při procházení Internetem pečlivě všímá efektů a prvků stránek. Často se přitom objeví myšlenka "tohle chci mít také" nebo alespoň "to by mě zajímalo, jak je to udělané".

Vytěžování je zpravodajský termín, který symbolizuje snahu dostat ze zdroje co se dá. Skoro by se dalo napsat vykrádání. Otázku duševního vlastnictví a autorských práv skutečně nelze přecházet bez povšimnutí (ke konci se o tom zmíním). Nyní mi ale jde jen o technickou stránku stahování a ukládání textu, obrázků, skriptů, stylů, flashí a appletů.

Přístupnost prvků

Ne všechno se dá stáhnout. Hlavně nejdou stáhnout serverové skripty (např. PHP kódy), protože to důležité zůstává na serveru a klientovi se posílají jenom výsledky. Představte si to jako úřednici na poště, která sedí za sklem. Komunikujete jenom skulinou, to důležité zůstává nepřístupné. Takže třeba poštovní skript z Postu.cz nebo vyhledávač google.com nestáhnete (maximálně se dá použít parazitní formulář)

Ale všechno, co se posílá prohlížeči, se dá nějak uložit a využít. To znamená

Všechny takové objekty si můžete uložit a předělat (kromě appletů a flashí, ty se předělávají špatně). Nejzajímavější bývají právě obrázky a JavaScripty.

Metody vytěžování

Jedna stránka obvykle není jenom jeden soubor. Je to více souborů, které jsou z toho prvního *.html souboru volány a načítány. Jak získat ten první i všechny ostatní soubory: 

Plus následná analýza.

Dalším oblíbeným druhem vytěžování je duplikace formulářů.

Ukládání HTML

Základní způsob uložení souborů z Internetu. Většinou to znáte, takže to můžete přeskočit. V prohlížeči (nejčastěji Internet Explorer) se zadá příkaz Soubor > Uložit jako (v angl. File > Save as).

Internet Explorer

Prohlížeč od Microsoftu se způsobem ukládání stránek poněkud liší od ostatních prohlížečů. Dává totiž na výběr, jak chci stránku uložit:

  1. buďto jako úplnou stránku (kompletní uložení),
  2. nebo jako normální HTML (tak ukládají jiné prohlížeče [psáno asi 2002], nyní [2003] je to různorodější).

Uložit jako normální HTML

Stránka se uloží přesně tak, jak dorazila ze serveru. Kód se při ukládání nezmění. Bude to čisté HTML, ostatní soubory (obrázky apod.) se neuloží. Pokud je chcete, musíte si je postahovat jinými metodami (úplným uložením nebo analýzou kódu).

Obsahuje-li stránka rámy, uloží se jenom definice rámů (frameset). V jiných prohlížečích, než je Internet Explorer, se dá pravokliknout do rámu a zvolit uložit jako.

Uložit jako úplná stránka

Zvolíte-li při ukládání v Internet Exploreru uložit jako úplná stránka, uloží se ten první html soubor společně se všemi dalšími, které jsou ve stránce použity. To jsou obrázky, skripty, styly, všechno. Tyto všechny ostatní soubory se uloží do složky (aneb adresáře) se zadaným jménem + "_soubory". Např. uložím soubor pavouci.htm a vedle něj bude složka pavouci_soubory. 

Určitě chápete, že to je velmi efektivní metoda vytěžování stránek. Nemusím nic složitě ukládat a mám stránku doma na disku. Drobnou nevýhodou přitom je, že se původní html soubor při ukládání změní tak, aby adresy vložených souborů mířily to té složky se_soubory, měnívá se kódování. Další detail je v tom, že se zřídka neuloží úplně všechny soubory (např. skripty volané skriptem to nestáhne). 

Tímto způsobem se kompletně uloží i stránky v rámech.

Ukládání kompletní stránky umí i Mozilla verze 1.5. 

Proč nejde uložit

Pokud stránka načítá stylopis z jiného serveru, Internet Explorer ji nedokáže uložit jako úplnou stránku. Problém dělá tohle:

<link rel="stylesheet" href="http://jinyserver.xyz/soubor.css">

Jde o chybu Internet Exploreru, možná je to schválně (což by ovšem bylo hodně divné).

Ukládání obrázků

Na obrázek se klikne pravým tlačítkem myši a zvolí se uložit jako. Když se klikne mimo obrázek na obrázkové pozadí, nabízí to taky volbu uložit pozadí.

Analýza HTML kódu

K této metodě studia se přistupuje v případě, že to potřebuji spíše pochopit, než že bych to chtěl stahovat. Dříve se to potřebovalo i pro stahování (to ale odboural IE kompletním ukládáním), dnes to používám, když potřebuji něco rychle. 

Většinou mě na stránce zaujme nějaký prvek (třeba zajímavé tlačítko nebo nějaká chyba). Pak stojím před dvěma úkoly: 

Hledání prvku v kódu

Najdu si na zobrazené stránce nějaký jedinečný text, který je blízko studovaného prvku. Pak dám příkaz Zobrazit > Zdroj. Objeví se textový editor (nejčastěji Notepad). Zadám vyhledat ten jedinečný řetězec (v Notepadu klávesa F3). V Notepadu se text označí a dá se předpokládat, že studovaný prvek bude někde blízko.

Když ten jedinečný řetězec nebude nalezen, tak zkuste jiný, raději kratší. 

Pro hledání prvků v HTML kódu je potřeba trochu praktických zkušeností a znalost HTML tagů

Linkované soubory

Tak dejme tomu, že jsem našel nějaký prvek, třeba vnořený rám (iframe), který si načítá obsah z jiného html souboru. V kódu to pak vypadá třeba takto: 

<iframe src="priklady/priklad15.htm" width="300" height="100">
</iframe>

Chci-li si stáhnout nebo prohlédnout ty načítané soubory, musím napřed získat jejich adresu. Tu musím poskládat. Napřed hledám atribut src nebo href (v tomto případě je to src). To jsou atributy, které obvykle slouží k linkování souborů.

Pak musím vzít aktuální adresu dokumentu, smazat jméno souboru (vše za posledním lomítkem) a přidat to, co jsem zjistil ze src nebo href. Např. kdyby adresa analyzovaného souboru byla http://www.zvířátka.cz/sloni/africky.htm a src="stopy/prava_predni.htm", tak ten načítaný soubor bude mít absolutní adresu http://www.zvířátka.cz/sloni/stopy/prava_predni.htm

Pokud src nebo href obsahují dvě tečky (../), tak to znamená nadřazený adresář. Např. Kdyby v předchozím příkladu bylo src="../menu.htm", tak má linkovaný soubor adresu http://www.zvířátka.cz/menu.htm (beze slonů).

Takto získanou adresu bych zadal do prohlížeče, načež ta studovaná stránka by se mi otevřela v novém okně. Horší by to bylo, kdyby to nebyla stránka, ale třeba skript s příponou *.js nebo applet s příponou *.class. Ten by se musel získat jiným způsobem (ale často se to zeptá, jestli se má spustit nebo uložit, tak se dá uložit a pak se prohlédne). Extrémně jistý způsob stahování je udělat si na disku stránku s odkazem na ten žádaný soubor, pak kliknout pravým tlačítkem > Uložit cíl jako (to se používá, až když všechno selže). 

Druhy linkovaných souborů

Druh Příklad kódu (zkráceně)
skript <script src="adresa.js"></script>
obrázek <img src="adresa.gif">
css styl <link rel="stylesheet" href="adresa.css">
oblíbená ikona <link rel="shortcut icon" href="adresa.ico">
klikací mapa <img src="cokoliv" usemap="adresa.html#mapa">
Java applet <applet code="adresa.class"></applet>
Flash <object ...><param name="movie" value="adresa.swf"></object> 
zvuk na pozadí <bgsound src="adresa.mid">
rám (frame) <frame src="adresa.htm">
iframe (vnořený rám) <iframe src="adresa.htm"></iframe>

Musíte si vždycky zjistit jméno toho souboru, který v tabulce zaměňuji jménem adresa.*. 

Maskované cíle odkazů

V normálním případě když se přejede myší odkaz, tak se na stavovém řádku (šedivá linka vlevo dole) zobrazí cíl odkazu. Je to velmi příjemné, alespoň je rovnou vidět, kam odkazy míří. Určitým skriptem se ale dá udělat, že se to tam zobrazovat nebude. Nebudu zde tento kód rozebírat, ale nastíním, jak zvědět, kam odkaz vede, aniž bych na to klikal.

Základní možnost je samozřejmě vlézt do kódu a hledat. To je pomalé. Rychlejší je kliknout na odkaz pravým tlačítkem > kopírovat zástupce. Pak kliknout do řádku adresy (nebo do texťáku) a vložit. Hned je to vidět.

Zobrazení finálního kódu

Existují doplňky do Mozilly a do Chrome na zobrazení kódu tak, jak jej vypíše javascript a ještě se to hezky zformátuje. Najděte si je v doplňcích pod klíčovými slovy view generated source.

Primitivnější způsob využívá bookmarkletu s xmp (přidejte si tento odkaz do oblíbených položek a pak jej spusťte na analyzované stránce). Více o bookmarkletech.

Kopírování z HTML kódu

Už umíte stáhnout javaScriptové soubory *js (např. úplným stažením). Hodně JavaScriptů se ale volně vyskytuje v HTML kódu, skript je tam jenom obalen značkami <script> a </script>. Takový kód se dá stáhnout prostým zkopírováním. Skript je vidět rovnou ve zdrojovém kódu. Jeho změnami si ho můžete přizpůsobit podle svých potřeb. Chce to trochu praxe, ale některé kódy by zvládla upravit i cvičená opice. 

Z HTML kódu se dají zkopírovat i celá rozvržení stránek, tabulkový design, adresy odkazů. 

Pokud potřebuji zjistit jenom kousek html kódu cizí stránky, používám na to jeden jednoduchý nástroj, můj šestiřádkový wysiwyg editor. Na cizí stránce si označím zkoumaný objekt, dám kopírovat a v mém editoru objekt vyklopím do horního políčka. V dolním políčku se mi objeví zdrojový kód (funguje pouze v Internet Exploreru 5.5 a 6).

V prohlížeči Firefox zase lze prohlížet html kód vybrané části stránky. Vyberu si část stránky a dám pravým tlačítkem myši příkaz Zobrazit zdrojový kód výběru. V novém programu se zobrazí zdrojový kód a vybraná oblast je v něm již označená.

Parazitní formuláře

Dalším oblíbeným druhem vytěžování je duplikace formulářů: zkopíruji si stránku s formulářem, upravím si ho (zachovám jména polí name) a namířím na cizí stránku (nutno zadat absolutní adresu do action). Takto si můžu udělat třeba vyhledávání v celém Internetu, přihlašování do své pošty, odesílání esemesek. Jediná nevýhoda těchto formulářů -- po odeslání se zobrazí stránka, která není moje (to je ale zároveň výhoda: není to plagiátorství).

Tuto problematiku rozvíjím na samostatné stránce o parazitních formulářích.

Využití cache paměti

Uživatelé modemů (po většinu času nepřipojení) s oblibou lezou do cache pamětí prohlížečů, protože tam zůstávají soubory, pro které by se jinak museli znovu připojovat. Uživatelé Internet Exploreru ve Windows 98 najdou složku se staženými soubory příkazem Nástroje > Možnosti > Obecné, dočasné soubory > Nastavení > Zobrazit soubory. Dá se to najít i na disku v C:\windows\temporary internet files, ale tam je to komprimované. Na Win 2000 a na iXPéčkách je to všechno zakopané někde pod Documents and Settings.

U jiných prohlížečů ve Win 98 je to snazší, ukládají si cache na logická místa.

Pokud jsou k soubory k nalezení, dají se zkopírovat a můžete si s nimi hrát.

Stahovací programy

Vím, že existují programy, které projdou celou stránku a stáhnou ji se vším všudy. Dávám k dispozici zkušenosti jiných, napřed Pavla Piláta:

Teleport Pro. Homepage je http://www.tenmax.com/teleport/pro/home.htm. Umožňuje stáhnout stránky kompletně; zadat úroveň zanoření; jestli opustit aktuální doménu nebo ne; pokud to jde, otevírá při stahování několik threadů, jejich progres je symbolizován analogovými hodinami; atd. K dispozici je shareware verze, kde omezení představuje počet stahovaných stránek z jednoho webu, jinak nic víc. Samozřejmě po registraci -- no limits."

Osobně mi na Teleportu vadí, že soubory ukládá v jiných adresářích, takže pak ve stažené verzi nefungují odkazy zapsané javascriptem.

WebCopier je velmi dobrý. Download je na http://www.maximumsoft.com". Dokáže sledovat odkazy i skrze javascript typu href="javasript:moje_wokno()", tak i udalost onClick. (doporučují Petr Šváb a Petr Pokorný).

Breza doporučil WinHTTrack Website Copier, který je prý i v češtině.

Wget

Na linuxu a unixu je standardem pros stahování program wget. Má spoustu přepínačů a umí stáhnout skoro všechno, na co si vzpomenete. Například stažení celého webu je

wget -m http://adresa

(m znamená mirror, prosím nepouštějte to na tento web, k dispozici je download v zipu). Wget je krásně jednoduchý a zároveň šíleně mocný. Existuje i wget pro windows. Já na woknech mám linuxový wget na windows v prostředí Cygwin. Poslední dobou na stahování nic jiného než wget pod cygwinem nepoužívám.

Analýza http hlaviček

Někdy jsou stránky, které je potřeba prozkoumat, různě přesměrovány nebo využívají různé možnosti http protokolu, což znesnadňuje jejich zkoumání. V takových případech se dá spustit přes příkazovou řádku příkaz telnet a ručně vyťukat http dotaz. Potom se kouknout na odpověď s http hlavičkami odpovědi.

V praxi je ale práce s telnetem zbytečně komplikovaná. Dříve jsem používal stránky zvané web sniffer (je jich víc a občas nefungují). Jde o nástroj, kterému se zadá http adresa a on vrátí výsledek včetně http hlaviček odpovědi. Dá se nastavit i user-agent, takže si takhle můžete hrát na robota Google (některé stránky využívají tzv. cloaking a vracejí Googlu jiné texty než běžným uživatelům).

Moderní prohlížeče reagují na klávesu F12 zapnutím ladícího prostředí. Po troše klikání se v něm vždy k aktuálním http hlavičkám dostanete. Už nepoužívám nic jiného.

Použití stažených souborů

Jakmile jednou máte data na disku, tak s nimi můžete dělat cokoliv (odhlédneme-li od autorských práv). Můžete je analyzovat, inspirovat se jimi, nebo je vystavit na svých stránkách. Před tím je můžete změnit, pokud to dovedete. 

Já doporučuji používat stažené soubory zejména pro inspiraci. To dělejte tak, jak umíte. Já si čtu zdrojáky. 

Kdo má oblíbený nějaký editor, ten si rád celé stránky natahuje rovnou do toho programu a html upravuje rovnou v něm. 

Přímé použití stažených souborů přichází v úvahu snad jen u ilustrační grafiky. V trochu pozměněné formě se používají skripty.

Autorská práva

Autorsky je chráněno všechno. Texty, obrázky, skripty, stopy v betonu, rýhy ve skle, prostě všechno, co chcete. Původní autor má právo dokonce i na díla, která vznikla "odvozením". Co je a co není odvození, to bývá předmětem sporů. Nejsou chráněna fakta, ale způsob jejich prezentace ano.

Není žádný problém postahované soubory trochu změnit. To ale nic nemění na tom, že když takový trochu pozměněný soubor vystavím bez svolení původního autora, je to protizákonné. 

Nečekejte ode mne nějaký seriózní výklad, moc tomu nerozumím. Nejsem právník (třebaže na fantasy šermovačkách mi to nikdo nevěří s poukazem, že právníci stále lžou). Původní autor mívá ale s ochranou svých práv problémy, obzvlášť na Internetu. Musí totiž:

Protože se to všechno musí dělat před soudem, v malých českých poměrech se autorská díla menšího rozsahu prakticky nedají chránit.

To by mohlo vyznít jako povzbuzení pro plagiátory. Ale nemyslím si to. Domnívám se, že je z dlouhodobého hlediska výhodné udržovat si morální profil a nepouštět na svoje stránky nic cizího. To, že jsou kolem nás stále porušovány zákony, ještě neznamená, že je to tak dobře. Navíc si představte, na kolika stránkách si pohrdavě říkáte" "tohle už jsem někde viděl," když narazíte popáté na stejnou animaci.

Rozhodující je ten ušlý zisk. Když zkopírujete nejnovější hudební nahrávky a vystavíte si je na web, tak (kromě toho, že si zahltíte server) můžete čekat velmi konkrétní žalobu. Když ale zkopírujete nějaký skriptík, tak i kdyby vám na to někdo přišel (což je samo o sobě nepravděpodobné), tak vám těžko prokáže ušlý zisk (nebude mu to stát za to). Když třeba mně někdo kopíruje stránky, tak ho raději zařadím na černou listinu mých zlodějů, většinou se pak ozve s omluvou.

 

Reklama

www.webhosting-c4.cz, extra rychlý SSD webhosting s doménou v ceně
o tvorbě, údržbě a zlepšování internetových stránek

Návody HTML CSS JavaScript Články Ostatní

Základy Prvky stránek Tvorba webu

Jak psát web píše Yuhů, Dušan Janovský. Kontakt.