Zadejte hledaný výraz...

RSS agregátor (PHP, Mysql)

Petr Jeník
verified
rating uzivatele
(71 hodnocení)
15. 4. 2010 11:10:33
Zdravim
Prosím o radu, resp. takové menší nakopnutí
Mám v merku moc zajímavou doménu a chci udělat pěkný RSS agregátor zpráv
Jak udělat online čtečku vím, ale já chci nové zprávy ukládat do MYSQL databáze a s tím si rady nevím
Chci aby mi script jednou za čas (třeba za hodinu) prošel RSS kanály zapsané v DB - zjistil, zda jsou nové zprávy a pokud ano, zapsal obsah nových zpráv do DB a to titulek, description, datum a odkaz a pár dalších identifikátorů (ID, rubriku - tu vybere z tabulky feedů)
Postačí menší nakopnutí jak na to - na zbytek si přijdu už sám jako vždy stylem pokus omyl :)
Předem díky za radu
P.S. - prosím nepište sem příspěvky typu "za pár stovek ti to naprogramuju". Když se někdo obrátí na mě s prosbou o radu ohledně daní, tak mu taky nenapíšu, že mi má za radu zaplatit. (tedy pokud to není poradenství, které mi zabere půl dne)
15. 4. 2010 11:10:33
https://webtrh.cz/diskuse/rss-agregator-php-mysql#reply491691
Netuším s čím konkrétně máš problém :). Jestli umíš pracovat s DB a parsovat RSS, pak je to jednoduché :). Jediná komplikace může nastat v tom, jak identifikovat článek tak, abys nevložil jeden dvakrát. Buďto to můžeš dělat na základě serveru a title, nebo třeba datumu publikace a serveru. Může se stát, že třeba někdo publikuje článek a poté zjistí, že má v titulku chybu a změní ho. A tobě by se v případě první možnosti řešení zaindexoval dvakrát. Ale já bych to riziko podstoupil :). Udělal bych si do tabulky sloupec "hash" (varchar(32)) který bude mít unikátní příznak. Do něj by se vkládalo něco jako MD5(server + title) a RSS čtečka by vždy jen projela feedy a vkládala do databáze všechno co najde, použiješ INSERT IGNORE a společně s unikátním sloupcem "hash" se ti do DB nedostane jeden článek dvakrát.
To je celé :). Nejjednodušší řešení. Nebo je problém v něčem jiném?
15. 4. 2010 11:48:52
https://webtrh.cz/diskuse/rss-agregator-php-mysql#reply491690
Kovboj
verified
rating uzivatele
(13 hodnocení)
15. 4. 2010 12:44:41
Napsal Malej Jarda;496713
Zdravim
Prosím o radu, resp. takové menší nakopnutí
Těžko nakopnout když nevíme kde máš problém ;-) Sám jsem si pro svoje účely takovou aplikačku napsal, není to větší problém.
Základ je asi udělat si parser XML, u něj musíš počítat s tím že RSS posílají weby v různém kódování a ne vždy je to kódování uvedené v hlavičce. Jsou dokonce i borci, kteří mají nějaké kódování v hlavičce a přitom používají jiné - s tím vším se musíš být schopen vypořádat.
Pak nějakou tabulku do které budeš dávat weby které chceš prohledávat a vymyslet si podle jakých priorit je bude procházet - pokud budeš mít 1000 adres tak je nesmysl snažit se je každých 5 minut projít všechny, ale asi budeš mít weby kde oceníš aktualizaci 1x za hodinu i takové kde ti bude stačit 1x za den.
Pak je taky potřeba počítat s tím že občas zdroj RSS nemusí fungovat a chtělo by se k němu vrátit, případně se adresa může změnit třeba po redesignu webu a už ji vůbec nemá cenu konktrolovat. Samozřejmostí je jak bylo uvedeno ověřovat zda došlo k aktualizaci článku a obecně rozpoznávat co je "nový" článek a co je starý.
No a pak už to jenom udělat nějaký hezký frontend, kategorie, vyhledávání a tak :-)
15. 4. 2010 12:44:41
https://webtrh.cz/diskuse/rss-agregator-php-mysql#reply491689
Petr Jeník
verified
rating uzivatele
(71 hodnocení)
15. 4. 2010 14:13:52
díky - stačilo napsat něco jako: "vygoogluj si XML Parser" :)
tak a dál. Dokážu tedy rozebrat xml, určit jaké články má vybrat a jak je zapsat a roztřídit. to není problém.
jak to ale udělat, aby to dělalo automaticky (něco jako automatické spuštění scriptu)
prosím nakopněte mě znova.
15. 4. 2010 14:13:52
https://webtrh.cz/diskuse/rss-agregator-php-mysql#reply491688
Martin
verified
rating uzivatele
(36 hodnocení)
15. 4. 2010 14:17:28
K automatickému spouštění skriptu se používá Cron, což je záležitost webhostingu (většina ho poskytuje).
15. 4. 2010 14:17:28
https://webtrh.cz/diskuse/rss-agregator-php-mysql#reply491687
Petr Jeník
verified
rating uzivatele
(71 hodnocení)
15. 4. 2010 14:25:09
díky vám panáčkové - myslím, že vím, co jsem potřeboval vědět.
zkusím se s tím popasovat a kdybych si nevěděl rady, budu opět otravovat.
Edit: rozdal jsem vám rep+
15. 4. 2010 14:25:09
https://webtrh.cz/diskuse/rss-agregator-php-mysql#reply491686
Pro odpověď se přihlašte.
Přihlásit