Předevčírem jsem tu psal o spuštění projektu Srovnávadlo.cz a už tu mám další novinky. Abych pravdu řekl, vůbec jsem nečekal, že to půjde takhle dobře. Když jsem se včera ráno díval na velikost databáze, tak bylo načteno 26 000 položek. A kolik jich je teď? Neuvěřitelných čtvrt milionu! Samozřejmě, že to rozhodně není dost. Ale už je to soubor dat, se kterými se dá pracovat. Nyní můžeme konečně pořádně zkoušet vyladění relevance hledání i optimální zobrazování.
Srovnávadlo.cz je v základu nevýdělečný projekt, protože generuje jen náklady – nikde žádná reklama, žádné přednostní výpisy, nic. Vzhledem k počtu reakcí (a hlavně kladných!) i tomu, že jde o neziskový projekt jsem si řekl, že bych tu mohl postupně zveřejňovat zákulisní informace o vývoji, problémech, chystaných vylepšeních a podobně.
První problémy?
Podle očekávání je problém s XML soubory. Zboží.cz a podobné mají evidentně benevolentnější parser. Poměrně velké množství obchodů má ve svých XML chyby. Nejčastěji jde o neošetřené entity (například & v adrese), ale kupodivu i úplně rozhozené kódování (tvrdí o sobě, že je CP1250, ale znaky jsou v UTF-8). Přemýšlím, co s tím budeme dělat. Samozřejmě je tu možnost nedělat nic a maximálně posílat automatické emaily, že je XML špatně. Ale například v případě chybných & by mělo jít takové XML opravit na naší straně. U kódování je to horší – je zde riziko, že pak opravovací skript odchytí něco chybně a pak zkoní kódování e-shopu, který má XML dobře, ale pouze obsahuje exotické názvy.
Také se objevují experti, kterým je úplně jedno, že XML má nějaký daný formát a cpou nám úplně jiné. I zde je teoreticky možnost takové XML poznat a pokud je to známý typ, tak ho převést. Jenže…
Všechny tyhle úpravy zaberou jednak čas, ale hlavně výkon serveru. Je tedy otázkou, jestli se zdržovat s chybnými XML nebo raději více sil věnovat na ladění relevance apod.
Mimochodem nejvíc mě baví experti, kteří do políčka pro XML zboží.cz i heuréky nacpou stejnou adresu :)
Hromadný import
U podobných služeb mi vždycky vadilo, že není možné nějak hromadně přidat weby. Srovnávadlo má aktuálně XML bránu pro import obchodů kvůli našim e-shopům. Jakmile se pod Simplií spustí e-shop, rovnou se přidá do Srovnávadla. Přemýšlím, že bychom možnost tohoto napojení dali i veřejně. Jenže je otázkou, kdo by to využil. Skoro mi přijde, že Simplia je asi tak jediný provozovatel, který něco takového může provést.
Jak už jsem zmínil, tak se Srovnávadlo mezi eshopisty zatím docela zalíbilo. Je vidět, že prapodivné řazení Zboží.cz leze krkem i někomu jinému než mě :) Děkuji Vám za podporu a budeme rádi, když se o Srovnávadle zmíníte, kde můžete. Zároveň bych Vás rád poprosil o spolupráci – pokud narazíte na něco, co se řadí jinak než by mělo, tak dejte vědět. Mějte ale na paměti, že ještě nemáme dost e-shopů na regulérní provoz, takže některé zboží v databázi zkrátka není.
A mimochodem – jsme na Facebooku :)


19:33 on Srpen 17th, 2009
Některé z těchto problémů jsem řešil při agregaci RSS zdrojů. Standardní nástroje pro práci s XML se na podobné úlohy vůbec nehodí.
Kódování můžu u každého feedu nastavit napevno, pokud se z nějakého důvodu samo detekuje špatně. Jestli feedy nějak ručně schvaluješ, neměl by být problém do postupu přidat kontrolu správné detekce kódování.
V případě feedů zboží bych navíc očekával značnou velikost souborů, takže bych jako ideální viděl nějaký streamový lexikální scanner (jako je Expat nebo Sax, ale méně striktní). Pokud se vybodneš na všechny ty nesmysly, co v XML beztak nikdo nepoužívá (deklarace vlastních entit apod.) a zjednodušíš si to prostě na tři typy tagů (open, close, empty) a text mezi nimi, tak je to implementačně vcelku jednoduché.
Pak ještě u každého feedu můžu jednotlivě nastavit různé filtry, například pro odstranění tagů, entit, ascii artu apod. Jsou třeba weby, které v RSS mají text článku v sekci CDATA a ještě třeba s HTML tagy převedenými na entity. Různé feedy mají různé takové „vlastnosti“, takže je potřeba u každého zvlášť umožnit podrobněji nakonfigurovat ošetření.
Také stojí za zvážení udělat speciální HTML parsery pro obchody, které svůj feed buďto nemají, nebo ti ho nechtějí dát, ale jsou důležité. Ty ve své databázi ještě nemáš třeba Mall.cz nebo Vltava.cz, což je výrazné mínus. Pokud chci srovnávat nabídku nějakého zboží z různých obchodů, určitě chci do srovnání zahrnout i ty nejznámější obchody.
20:21 on Srpen 17th, 2009
No pockam si, jak se to zachova az tam bude tech zaznamu vice… Ja jsem na http://www.usetrim.cz teprve na 3 mil. ale problemy s vykonem jsem uz parkrat resil.
21:14 on Srpen 17th, 2009
Já bych se rád zeptal na druhou stranu mince, a to jsou uživatelé, kteří by srovnávadlo měli využívat. Čekal jsem, že obchodů se přihlásí dost, ale co uživatelů, je jich také dost? Bez nich srovnávadlo ztrácí smysl a význam… Řečnická otázka zní: proč bych měl do srovnávadla dávat svůj obchod, když to pro mě nebude mít žádný užitek?
21:21 on Srpen 17th, 2009
LLook: Díky za tip. Nad něčím podobným jako zmiňuješ právě uvažuji. Mám možnost stáhnout si XML spousty e-shopů bez ptaní, jenže je otázka, na kolik je to košér. Ještě problematičtější je to stahování z html – můžu si dovolit, takhle „vykrást“ data e-shopů?
Jiří Baloun: Je to dost otázka důvěry :) Ale asi tak nějak předpokládá, že se tu přeci nebudu trápit se Srovnávadlem, aby na něm pak nebyli návštěvníci. V první fázi ale musí být data. Potom teprve bude propagace.