parsovanie na webe

Programovacie jazyky, rady, poradňa...
cicik
Amateur
Amateur
Príspevky: 30
Registrovaný: 31 mar 2010, 17:54
Kontaktovať používateľa:

parsovanie na webe

Príspevok od používateľa cicik »

Ahojte,

potrebujem spraviť web, na ktorom budem (okrem iného) parsovať iné zdroje. Jedná sa o spracovanie veľkého množstva údajov, ideálne by bolo robiť parsovanie, možno aj následné spracovanie paralelne. Problém je, že neviem akú technológiu použiť. Klasické PHP asi nebude stačiť, tak buď nejaký framework, alebo niečo úplne iné (rozmýšľal som nad GWT a parser tým pádom písať v jave) Vedeli by ste mi poradiť do akej technológie ísť? S tým že potom na tom celom vybudujem stránku.
S-player
Light Star
Light Star
Príspevky: 277
Registrovaný: 23 júl 2011, 22:30

Re: parsovanie na webe

Príspevok od používateľa S-player »

Som trochu stratený v tom čo vlastne chceš spraviť. Píšeš tu o PHP teda o strane servera a potom o GWT z čoho bude aplikácia ,ktorá pobeží v prehliadači a jej back-end môže byť ako v Jave tak aj v PHP... Kde to chceš parsovať?
cicik
Amateur
Amateur
Príspevky: 30
Registrovaný: 31 mar 2010, 17:54
Kontaktovať používateľa:

Re: parsovanie na webe

Príspevok od používateľa cicik »

No veď o to ide, že neviem kde bude vhodnejšie to parsovať. Či u klienta alebo na serveri. Funkčne to je v podstate jedno
S-player
Light Star
Light Star
Príspevky: 277
Registrovaný: 23 júl 2011, 22:30

Re: parsovanie na webe

Príspevok od používateľa S-player »

No ja neviem ako to chceš ty riešiť. Ako tam tie dáta dostaneš, koľko tých dát je a koniec koncov o aké parsovanie ide. Ak by šlo o prípad ,že tam tie dáta nahodí klient a nejde o zdĺhavú akciu tak by som to riešil určite na strane klienta (Ušetríš tým aj peniaze za server v prípade väčšieho počtu požiadaviek/návštevnosti).
cicik
Amateur
Amateur
Príspevky: 30
Registrovaný: 31 mar 2010, 17:54
Kontaktovať používateľa:

Re: parsovanie na webe

Príspevok od používateľa cicik »

tak uvediem príklad, snáď to bude jasnejšie :) dajme tomu že chcem spraviť predpoveď počasia - tým že budem parsovať napr. 10 webstránok s počasím. Teda na každej stránke vyparsujem údaje pre každú lokalitu a potom ich spracujem, zpriemerujem a budem mať výsledok.
Z toho mi plynie, že je jedno kde budem parsovať, výsledky zobrazím všetky aj keď to spracujem u klienta aj keď na serveri. Ide o to, čo je efektívnejšie a kde je možné lepšie využiť paralelizmus (nech sa jednotlivé stránky parsujú paralelne aby to bolo rýchlejšie)
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: parsovanie na webe

Príspevok od používateľa BX »

Ak toto "spracovanie" chceš robiť pravidelne (napr pár krát denne) a nie pri každom zobrazení stránky, tak je v podstate jedno, v čom to bude. Kľudne v php nejaký cli skript s parametrom a môžeš využiť plánovač operačného systému.
Ak to ale má byť fakt náročné, tak by som to ja osobne napísal v jave(alebo niečom podobnom) a použil priamo paralelizmus v programe.
cicik
Amateur
Amateur
Príspevky: 30
Registrovaný: 31 mar 2010, 17:54
Kontaktovať používateľa:

Re: parsovanie na webe

Príspevok od používateľa cicik »

má to byť opakované často, po každom načítaní stránky, aj nejaký auto refresh keby bol by bolo ideálne
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: parsovanie na webe

Príspevok od používateľa BX »

No a teraz riešime teda problém "ako čo najrýchlejšie stiahnuť", alebo "ako čo najrýchlejšie parsovať veľké dáta" (aj keď nevieme, aké sú to "veľké dáta")?

V php-ku by to prvé mohlo uľahčiť curl_multi_init (lebo s odpoveďou servra veľa neurobíš, nech je to v akomkoľvek jazyku. Možno tak skúsiť sockety, ale to iba ak by toto nestíhalo) a v php-ku to potom aj vyparsovať a zobraziť (alebo to možno trocha prinútiť cez exec). To by museli byť veľmi mega extra veľké dáta, aby toto trvalo neúnosne dlho. Iba ak sa jedná o také dáta, tak by malo zmysel to optimalizovať hlbšie, ale neviem si predstaviť, že by si chcel pri každom zobrazení stránky stiahnuť a spracovať ozaj obrovské dáta. Či?

Dosť ťažko sa radí, keď nevieme, čo je to "veľa údajov" a koľko zdrojov máš na mysli. Konkretizuj toto, nech sa to urobí na mieru, nie zbytočne zložito.
Sær
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 53
Registrovaný: 17 dec 2013, 15:10

Re: parsovanie na webe

Príspevok od používateľa Sær »

Nestačí ti to stahovať raz za nejaký časový interval? Povedzme 10 alebo 5 minút, popr. každú minútu. Ušetríš tým klienta od čakania. (Samozrejme že klient by mal autorefresh)
Michaelo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6177
Registrovaný: 16 júl 2008, 20:29
Bydlisko: Pri PC
Kontaktovať používateľa:

Re: parsovanie na webe

Príspevok od používateľa Michaelo »

Neviem či každý klient uvidí rovnaké dáta (ale asi áno), ak áno, predstav si, že ti naraz refreshne web 100+ klientov. Ty teda parsuješ tie isté dáta 100x a viac v jednú chvíľu.
Radšej ich parsni raz za 5 minút a ukladaj niekde.
S-player
Light Star
Light Star
Príspevky: 277
Registrovaný: 23 júl 2011, 22:30

Re: parsovanie na webe

Príspevok od používateľa S-player »

Ako už je spomenuté vyššie tadiaľ cesta nevedie a to ani keby to parsovanie bolo asynchrónne. Problém je ten ,že ty tie dáta získavaš z iných zdrojov (Aspoň keď ten tvoj príklad nieje úplne odveci) čo znamená ,že ak sa vyskytne nejaký timeout tak tvoj klient bude musieť čakať... nehovoriac o tom ,že 100 požiadavok na tvoj server = 100 požiadavok na každý z tých desiatich webov.
cicik
Amateur
Amateur
Príspevky: 30
Registrovaný: 31 mar 2010, 17:54
Kontaktovať používateľa:

Re: parsovanie na webe

Príspevok od používateľa cicik »

každý klient vidí dáta na základe svojho filtra, ale hej, to som si neuvedomil že by bolo príliš chcieť to stále po každom requeste. Musím teda parsovať v nejakých intervaloch a ukladať výsledky, ktoré potom už iba na základe requestu vyfiltrujem. Jedná sa o kvantum cca 1000 údajov z jednej stránky, pričom stránok by malo byť okolo 10 (neskôr možno viac).
V týchto technológiách nemám absolútne prehľad, teda ako by sa to dalo riešiť? ako na serveri spravím nejakú takú službu ktorá bude v intervaloch spracovávať údaje a potom - ako tie údaje ukladať aby som ich potom vedel pre klientov vyfiltrovať a zobraziť?
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8217
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: parsovanie na webe

Príspevok od používateľa harrison314 »

10 000 udajov nie je vela :D
Podla mna to kludne zvladne PHP pomocou XPath (PHP to vie robit aj nad html).
A pouzit cron, ziadna veda.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: parsovanie na webe

Príspevok od používateľa BX »

Tiež v tom nevidím vedu, php skript, cron a prípadne ukladať to do databáze a potom ťahať cez query, prispôsobené podľa filtra.
cicik
Amateur
Amateur
Príspevky: 30
Registrovaný: 31 mar 2010, 17:54
Kontaktovať používateľa:

Re: parsovanie na webe

Príspevok od používateľa cicik »

10 000 údajov nie je vela? keď na jeden request viem stiahnuť tak 2 - 5?
Na to ukladanie - databáza je na takéto vhodná? nie je lepšie použiť niečo iné?
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8217
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: parsovanie na webe

Príspevok od používateľa harrison314 »

cicik napísal:10 000 údajov nie je vela? keď na jeden request viem stiahnuť tak 2 - 5?
Na to ukladanie - databáza je na takéto vhodná? nie je lepšie použiť niečo iné?
Pre databazu to nic nie je.
V tvojom pripade by som sa poobzeral, ci tie stranky neposkytuju na to API.

//autoeditácia príspevku (28 Máj 2014, 16:22)
Inac ide to s teba ako z chlpatej deky, to sa tazko radi.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: parsovanie na webe

Príspevok od používateľa BX »

Nie je to veľa na spracovanie v hocičom - takže kľudne php.
Z toho čo píšeš mi príde, že sťahovanie bude pomalé, nech je to napísané v čomkoľvek, lebo bude hlavne záležať na odozve servra. Takže je to asi jedno(?)

A ja osobne by som databázu určite použil. (okrem iného)Nemusíš sa tak starať o synchronizáciu (vyradíš prípady, keď niekto otvorí stránku presne v čase, keď sa budú údaje spracovávať a ukladať)
Treba len vyriešiť súvislosti medzi dátami. Ak píšeš, že bude veľa requestov, bude každý request znamenať zápis hotových dát do db? Predpokladám, že asi nie. Takže použiješ nejakú "medzistanicu" pre dáta, napr obyčajný súbor. Requesty tak môžeš ošéfovať paralelne(stačí multitasking), výsledky uložiť do súboru(ov) a potom to spracovať a odoslať do db.
S-player
Light Star
Light Star
Príspevky: 277
Registrovaný: 23 júl 2011, 22:30

Re: parsovanie na webe

Príspevok od používateľa S-player »

cicik napísal:10 000 údajov nie je vela? keď na jeden request viem stiahnuť tak 2 - 5?
Na to ukladanie - databáza je na takéto vhodná? nie je lepšie použiť niečo iné?
Čo to sú za údaje ,že na jeden request ich stiahneš len 2-5? To znamená ,že nebudeš parsovať 10 stránok ,ale pár stoviek ,ak nie tisíc (1 request - 1 stránka). Ak začneš niekomu zaťažovať takto stránky nebodaj ich dávať dole tak to nepotrvá dlho a prístup z tvojej IPčky bude zablokovaný.
Napísať odpoveď