Aplikácia na servere   zodpovězená otázka

C#, VB.NET, ASP.NET WebForms, Databáze

Zvažujem urobiť nejakú aplikáciu, ktorú by som uložil na nejaký server, kde by monitorovala v pravidelných časových intervaloch nejakú cudziu web stránku a údaje z nej by ukladala do nejakej databázy.

Vedeli by ste ma niekto nejako nakopnúť? :-)

Pekný deň prajem!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Aplikaci, která něco provádí např. v pravidelných časových intervalech, je nejlepší udělat a navrhnout jako NT Service viz:

http://msdn.microsoft.com/en-us/library/...

http://msdn.microsoft.com/en-us/library/...

Pro debug a testování je vždycky dobré (např. na commnad line parametr) udělat i hostovaní přes nějaký (stačí WinForms) formulář např. se zobrazením ikonky v notification area.

Co se týče stahování a analyzovaní obsahu nějaké cizí HTML stránky, to je vždy bráno za poslední a krajní řešení. Proto se nejdříve podívejte a prozkoumejte, zda daný web/organizace neposkytuje vámi požadovaná data nějakým jiným způsobem (XML, TXT/CSV soubor ke stažení, webové služby apod.).

Pokud ne zjistěte si, zda je HTML stránka, kterou budete analyzovat, zároveň validní XML (tj. XHTML). Pokud ano pak můžete alespoň na její parsování použít XLINQ, jinak si parsování musíte napsat úplně sám. A také budete muset počítat s tím, že autor zdrojového webu může formát stránky kdykoliv a jakkoliv změnit, čímž se celé vaše řešení rozbije.

Jinak na stažení obecné odpovědi HTTP (v případě obyčejné webové stránky GET) požadavku můžete použít nového HttpClienta dostupného jako Nuget balíček Microsoft.Net.Http viz:

http://blogs.msdn.com/b/bclteam/p/httpcl...

https://www.nuget.org/packages/Microsoft...

Pro ukládání do databáze můžete použít buď EntityFramework nebo i cokoliv jiného.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Ďakujem za odpoveď. Navrhované lokality preštudujem.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vypadá to, že se v tom vyznáte. Něco podobného jsem též řešil.

Udělal jsem to pomocí klasického web hostingu a timerem v aplikaci. Nebylo to moc šťastné s přihlédnutím na variantu hostingu...

Mám ale trochu jinou otázku... Je legální sbírat data pomocí parsování html?

Bylo by v pořádku kdybych sbíral třeba atletické výsledky (např. http://online.atletika.cz/vysledky.aspx?... ) a založil svůj web na nich?

Děkuji

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Dobrý večer.

Mám jednú otázku. Prečo to nebolo veľmi šťastné s prihliadnutím na variantu hostingu?

Inak, aj keď ja sa sa nechystám zverejňovať získané dáta, chcem zhromažďovať dáta o počasí pre vlastnú potrebu, aj mňa by zaujímalo, či je to legálne, šíriť dáta zbierané pomocou parsovania.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No,, udělal jsem to tak, že jsem vytvořil asp.net mvc aplikaci, kde se global.asax spustil timer...Problém byl ten, že po nějaké chvíli (cca 5 minut) se aplikace "uspala". Když jí přišel požadavek, tak se app znovu probudila, nastartovala timer a ok.. Hosting byl free u aspone.cz. Lze tam nastavit spouštění skriptů v pravidelnou dobu (a to i na free hostingu), dal jsem tedy spouštění defaultní stránky každých 5 minut, čímž jsem aplikaci udržel mimo letargii a šlapalo to...

Určitě je na to lepší mít VPS a spustit si tam aplikaci, nebo tu servisu.

Jestli chcete, poskytnu vám ten můj paskvil, který nakonec frčel...

Sám si rád vyslechnu nějaké rady, já jsem se dostal jenom k usínající webové aplikaci..

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Řešit tento typ scénáře webovou aplikací hostovanou např. na IIS je z jejího principu špatně. U webové aplikace musíte předpokládat, že může kdykoliv dojít k jejímu restartu např. při recyklaci app poolu.

Pokud potřebujete, aby služba běžela na hostingu, musí běžet na VPS nebo lze ještě tento typ aplikací napsat pro Cloud Services Worker Role na Windows Azure (to se ale pravděpodobně vyplatí až když budete potřebovat aplikaci škálovat).

Co se týče legálnosti načítání dat z cizího webu, předpokládal bych, že to k jakým účelům lze data použít určuje provozovatel toho konkrétního cizího webu.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Vďaka za informácie.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ak chcete pošlite.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback