Diskuze: Robot na stahování webů a ukládání jejich obsahu do DB
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 13 zpráv z 13.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


$str = file_get_content($url);
A pak uz pouzijes str_pos+substr nebo reg. vyrazy preg_match/preg_replace.
Takhle, nevidim duvod, proc se s tim drbat v php, kdyz jsou hotove exe soubory
A chceš hledat pouze v určitém seznamu stránek, nebo se snažíš udělat crawler (indexuje vše, na co narazí)?
Robot bude indexovat to co mám v DB když najde novou stránku tak ji
zapíše do DB robotovy který bude stejný ale bude se zabývat jen nalezenýmy
odkazy. 
On to dělá, aby se lépe naučil s PHP
Samozřejmě nejlepší takovou věc
by bylo napsat to v rychlém céčku, aby to mělo smysl, ale to by mu
nepomohlo...
Ono celkově by se ti hodilo, kdyby sis za pomocí regexu nebo prácí s DOMem nalezl všechny odkazy na stránce a uložil -> ty pak taky procházel a pořád dokola, získáš díky tomu docela dost stránek (záleží na tom, jak dlouho to necháš běžet).
To by ani nutné nebylo, spíše poskládat z více součástí. Weby se dají celkem dobře stahovat utilitou wget (řeší i odkazy v nich, má slušně široké možnosti natavení) a zbytek (ukládání dat DB) třeba menším skriptem v Pythonu. Pokud je cílem napsat si něco jako vlastní wget, tak rozhodně směle do toho, úloha to není zrovna jednoduchá, pokud má řešit všechny možné případy.
Jako úloha pro procvičení PHP mi to přijde dost nevhodné vzhledem k primárnímu použití tohoto jazyka, tedy na tvorbu webů. Jistě, najdou se i protipříklady (např. malware rodiny Zeus), ale podle mě to není rozumná cesta.
Co jsem pochopil z tvého zadání, chceš prográmek, který poběží na pozadí (třeba na serveru), občas se podívá, zda nedostal za úkol stáhnout nějaký web, pokud ano, začne jej stahovat a provádět další věci dle tvých přání.
V tomtto případě mi přijde Python lepší.
Jak se dá v pythonu stáhnout web? 
Porad se ptas na to same 
Nevim, zda si rozumime. Web stahujes bud html stranku nebo komplet vsechno,
kazdy soubor, ktery pro zobrazeni stranky potrebujes (css, js, obrazek). A dal
muzes stahovat dalsi stranky podle odkazu v html strance. To lze do nekonecna
nebo nastavil level, treba, do hloubky 4 odkazu.
Kam si budes data ukladat, je tvuj problem. Je tam treba hlidat cesty a
neukladat duplicity.
Jako skolni uloha by to melo fungovat asi tak, ze si vytvaris v php strom,
prohledvas strom, zda tam uz takova stranka existuje, abys ji neduplikoval a
pridas ji do seznamu. V podstate vystup by mohl byt jen strom stranek. Pripadne
k nim pridane jmena souboru (obrazky, css, ...)
Pri ukladani souboru bych delal uplne stejnou adresarovou strukturu jako najdes
u odkazu.
Stazeni souboru do stringu je pres file_get_content(). Dalo by se pouzit mozna fopen() nebo nejake funkce f-neco.
To jo, však jsem psal že to je něco pro c, ale klidně i Python. Já to myslel k procvičení jazyka jako takového. Je jedno že ta úloha není čistě webového ražení, pořád se na tom nacvičí OOP, práci s DOMem, funkce na pole atd...
Zobrazeno 13 zpráv z 13.