vyhledávání - automatický obrázek - skript

(spadá na pomezí témat HTML a PHP)

Řekněme, že mám hodně stránek s různým obsahem, a chtěl bych mít na každé stránce nějaký automaticky vložený obrázek, který by odpovídal jejímu obsahu. Řekněme, že ten obsah dokážu (třeba i strojově) postihnout několika málo slovy, takže se to dá zadat do googlu image search a má to použitelné výsledky.

Je nějaký jednoduchý a čistý způsob, jak tohle udělat? Mám teď skript, který přes fopen otevře výsledek gůglího vyhledávání daného výrazu a chvilku si to parsuje, až z toho vyparsuje URL prvního nalezeného obrázku, a echuje to do kódu (<img src=URL... ). Funguje to líp než jsem čekal (viz http://hadej.ptakopysk.wz.cz), ale má ještě různý mouchy, a především mi to připadá jako nebetyčná prasárna, a to hned z několika důvodů, které snad netřeba rozepisovat.

Pomíjím teď otázku legality daného počínání, ale pokud někdo budete mít způsob, jak tohle vyřešit a ěště k tomu bez potenciálních problémů s autorskejma právama, tak samozřejmě tim líp ;-)
Zakladem dobreho tematu je mluvit konkretne, mit demo stranku.
Tady neni nic k reseni.

Jestli to spravne chapu, tak
1. mas clanek.
2. K tomu clanku mas rucne zadany seznam klicovych slov.
3. A chces aby se ti k tomu clanku zobrazoval nahodny obrazek odkudkoliv z webu, ktery ziskas napriklad parsovanim stranky google.com hledat = klicova slova
Pres google se v podstate jedna o kradez z jinych stranek.
Ale, kdyby sis udelal vlastni databazi obrazku, pak je vse oki, jen musis do google pridat site:tvoje.stranky.cz

Na jedne strance jsme pouzil parsovani pres php pro mobilmanii. Ale zakaznik mel u nich registrovany ucet, jen proste oni neposkytovali takovou html stranku, aby bylo mozne ji vlozit do webky. Takze jsem to pres file(url) stahl, reg vyrazy ocesal, ulozil do tmp a pres include(tmp/soubor) vlozil do stranky. Aby se to nestahovalo pri kazdem refresh, hlidal jsem si cas prepsani v tmp tusim kazdych 8 hodin

Mozna, ze jde google nastavit tak, aby ti vratil pouze url adresy obrazku. Urcite jde nastavit tak, aby ti vratil pocet=1, abys usetril cas pri nacitani, hledani a parsovani.
>>Zakladem dobreho tematu je mluvit konkretne, mit demo stranku.
>>Tady neni nic k reseni.
He. Nepřehnals to? Vždyť mluví konkrétně. Však jsi ho pochopil. A demo stránku uvedl.

V podstatě děláš expertní system. Takže si zkus o tom něco najít. Třeba ti to pomůže. Jde o systém otázek, které průběžně hodnotí pravděpodobnost výsledku.
Jediná možnost je mít vlastní databázi klíčů a obrázků.

Autorská práva? Ten v podstatě porušuje i Google a vlastně i kde kdo. Ty obrázky stejně nejsou jeho. Ale lze to obejít tím, že se u obrázku uvede zdroj.
Tomík (tom.czweb.org)
Mozna mi neco uniklo, ale na te strance nevim, co mam delat, abych docilil vysledku o kterem mluvil. Ani nevim, kde to mam hledat a nemam k ni zdrojovy kod. Takze podle mne nelze pomoci.
Asi se tu predpoklada jisty druh telepatie, tak sory, proste porucha v atmosfere. Klasicky dotaz jako od ostatnich lidi :) Si vzpomenu, az bude mit pripominky k nekomu, ze ani jeho dotaz nic moc :)

Jinak to hadani je pekny, akorat, jak jsem popsal, chtelo by to klasicky nahodny system, vse na tvem disku. Vyhoda toto je, ze pak muzes mit profesionalne stejnou velikost obrazku.
Mno, a bez toho zdrojaku... viz odpoved pro Tom :)
Tomík: Ah, díky za klíčové slovo které jsem neznal! :-) Teď už mám co googlit a číst :-)
Nicméně neměl jsem v plánu pojmout to takhle large scale (i když to je zajímavej challenge >:-), spíš jsem čekal, že mi někdo napíše něco ve stylu
<img src="http://google.com/imfeelingluckyimage?q=KLICOVASLOVA&resizetoheight=VYSKA&resizetowidth=SIRKA&...">
nebo
<iframe atd...>
Prostě jsem předpokládal, že nejsem první, kdo by něco takovýho chtěl, a že google nebo někdo jinej by moh takovouhle službu poskytovat. Bohužel jsem nic takového nenašel, proto se ptám tady.

Autorská práva - no, ano, to je teď prostě trochu vedlejší, to se může řešit potom.

peta: Sorry ale ty seš fakt debil :-)) To hádání je právě to ono, ten obrázek co se tim tam zobrazuje a je pod nim napsáno "(zdroj: Google image search)", to je to o čem jsem mluvil, panebože! A zdroják klidně zveřejnim, pač zatim mi nikdo neporadil nic lepšího, tak třeba to někdo taky využije...
Taky tady je ten kód, je to jednoduché, ale účinné, případná vylepšení postněte sem ;-)
Má to mouchy v místě urldecode($url), to někdy nefuguje správně a nechtělo se mi to ladit, můžete vylepšit.
Pro rejpaly: $alen=10 je konstanta a nějak to odpovídá formátu toho kódu co plive google, prostě po 10 znacích od toho stringu co tam hledám začíná URL obrázku.


//obrazek - vrátí kód pro vložení obrázku do stránky
//$q: dotaz pro vyhledávání
//$blokblog: blokovat doménu "blog.cz", protože zakazují sosat obrázky

function obrazek($q, $blokblog=false){
$alen=10;
$a=false;
if($blokblog) $fp=fopen('http://images.google.com/images?hl=cs&safe=off&q='.urlencode("$q -blog.cz"),'r');
else $fp=fopen('http://images.google.com/images?hl=cs&safe=off&q='.urlencode("$q"),'r');
while($a===false && $radek=fgets($fp)):
$a=strpos($radek,'imgurl\\x3d');
endwhile;
fclose($fp);

if($a!==false){
$b=strpos($radek,'\\x26', $a);
$url=substr($radek, $a+$alen, $b-$a-$alen);
if(ereg('blog\.cz',$url)){
return obrazek($q, true);
} else {
return '<img src="'.urldecode($url).'"><p><small>(zdroj: Google image search)</small></p>';
}
} else {
$q=ereg_replace(' [^ ]+$','',$q);
if(ereg('^ *$',$q)) return '<small>(není dostupný žádný obrázek)</small>';
else return obrazek($q, $blokblog);
}
}
hm,tak asi neexistuje, to je škoda... zkusím napsat na google, jestli třeba náhodou by něco nebylo...
R.U.R. (jsrosa.wz.cz)
V podstate jsem psal to same, jak Tomik, udelej si vlastni databazi obrazku a klidne ji obnovuj casove, ob 8 hodin. Vyhoda je, ze mas obrazky na 1 serveru.

if(ereg('blog\.cz',$url)){
strpos by melo byt rychlejsi

anketa - to je ono, a to mam vedet jak? Na prvi obrazovce zadny obrazek neni a z toho vychazim. A pokud nevim, co mam dal delat, tak je to otazka nahody, ze to najdu. Jinymi slovy plati pravidlo, kdo co rika, to sam je :) Jsi to mel napsat. Nesnaz se svou chybu zakecat a hazet na mne :)
@peta: Doposud jsem si myslel, že si obsah stránky návštěvník (i tester) alespoň rychle přečte (nebo proletí očima).. Nikoli hned zavře, protože nevidí obrázek a neumí/je líný si přečíst 3 věty. Děkuji, žes mě z tohoto omylu vyvedl...