Autor Zpráva
jojo
Profil *
Zdravím.
Môžete mi poradiť, prípadne ma nasmerovať kde začať hľadať, čo a ako v prípade vyhľadávacieho robota?
Potreboval by som aby zvládol základnú vec a to prejsť určitú stránku, vyhľadať na nej text, prípadne odkazy (tie si dokážem už z toho textu vytiahnuť sám) a uložiť to všetko do databázy? Niečo podobné ako majú vyhľadávače google, zoznam, seznam a pod. samozrejme nie také komplexné - iba nájdený text vložiť do db.
Matess
Profil *
jojo:
//vyhledává na cizích stránkách
$stranka = 'example.cz';
$hledam = 'domain';
$zdrojovy_kod = file_get_contents('http://'.$stranka);
if (strpos(' '.$zdrojovy_kod, $hledam) != FALSE)
{
echo $hledam.' tam je.';
}
else
{
echo $hledam.' tam není.';
}
jojo
Profil *
To je super, určite sa to bude dať upraviť na to čo potrebujem a to buď:

A) vyhľadať VŠETKY texty napr. v tagu <B> </B>

alebo

B) vypísať celý zdrojový html kód

Ešte otázka: toto vyhľadá na jednej konkrétnej stránke. Je možné aby sa niečo také dalo urobiť aby prehľadávalo aj podstránky, na ktoré nájde odkaz?
ShiraNai7
Profil
Sežeň/napiš si nějaký HTML parser a dělej si s tím co chceš :)
jojo
Profil *
Parser vyťahuje už potrebné dáta. ja ale potrebujem aj to ako prehliadnuť celý web aj s podstránkami...
ShiraNai7
Profil
Vsak ti parser vytahne odkazy a ty muzes prohlednout dale ne?
jojo
Profil *
To áno, ale chcem to zautomatizovať: zadám stránku napr. example.com a na tejto stránke nájde odkaz na example.com/page1, example.com/page2, example.com/page3, ... a zo všetkých týchto stránok vytiahne text v tagu H1.
ShiraNai7
Profil
Však ano, parser a pracuj s dokumentem dle libosti. Pochybuju, že ti tu někdo sepíše komplet řešení.
Keeehi
Profil
jojo:
A to je takový problém vlézt na jednu stránku, tam zjistit všechny odkazy,vložit je do databáze, do sloupce stav vložit 0. Pak už jen ten script spustíš znovu, načteš jen adresu která má stav 0, stav ji změníš na 1 a zase vyhledáš všechny odkazy a uložíš je do DB.
jojo
Profil *
Keeehi:
Mne ide nielen o získanie tých odkazov ale hlavne o vytiahnutie textu v určitom tagu (napr. to H1) a to zo všetkých stránok.

ShiraNai7:
Môžeš mi odporučiť vhodný parser? prípadne iný program cez ktorý by sa to dalo?

našiel som screen scraper ale je to dosť zložité nastavovanie.
Keeehi
Profil
jojo:
Děláš že nechápeš, nebo opravdu nechápeš?
jojo
Profil *
Asi fakt nechápem. Ale napadlo ma iné riešenie: stiahnuť celý web do počítača a potom prehľadávať jednotlivé html súbory a vyberať z nich text v tagu.
ShiraNai7
Profil
Máš html parser... vyhodnotíš s jeho pomocí staženou HTML stránku... po jednom procházíš DOM strukturu dokumentu a ukládáš si co potřebuješ. A když narazíš na odkaz, tak si ho dáš do nějaké fronty pro skenování a pokračuješ dál..

Ale raději bych to vzdal. Robot na procházení struktury potřebuje celkem komplexní funcionalitu na rozpoznávání totožnosti stránek, stránky odkazující na sebe sama nebo na sebe navzájem, aby se tam nezasekl rekurzivně donekonečna atd..
jojo
Profil *
Asi máš pravdu, radšej to vzdám. Myslel som, že je možno niekde nejaký hotový script alebo priamo program, ktorý by toto dokázal.
ShiraNai7
Profil
Nevím k čemu bys to vůbec potřeboval? A psát nějakého web crawler bota v PHP no nevím, to se na to moc nehodí. Taky nároky na kapacity serveru kde by ten bot běžel jsou vyšší.
imploder
Profil
Keeehi, ShiraNai7:
Co na tom nechápete vy? jojo chce doporučit HTML parser. Ne každému se chce zdlouhavě znovu programovat něco, co už bylo 1000x uděláno.

jojo:
Můžeš použít třeba http://simplehtmldom.sourceforge.net/
A jinak stačí zagooglovat "html parser php" a dostaneš okamžitě to, na co se ptáš. Prostě zkus před položením dotazu použít google a chvíli sám hledat.
ShiraNai7
Profil
imploder:
Já vím co chce, tak laskavě neříkej, že na tom něco nechápu. Pokud nezvládne do googlu zadat "php html parser" tak to je jiná. Já ho jen upozorňoval na úskalí toho, co se snaží naprogramovat.
imploder
Profil
ShiraNai7:
Nj, to s tím nechápáním psal Keehi. Sry, už bych to dál nerozebíral.
Keeehi
Profil
imploder:
Před tím, než jsem to psal, tak dostal radu jak ohledně paraseru tak i ohledně procházení dalších odkazů. A když se pak znovu ptal na to samé, tak jsem nevěděl, zda to opravdu nechápe, a nebo si dělá legraci.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: