Ziskanie informacii z webu – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ziskanie informacii z webu – .NET – Fórum – Programujte.comZiskanie informacii z webu – .NET – Fórum – Programujte.com

 

Jan
~ Anonymní uživatel
187 příspěvků
3. 9. 2012   #1
-
0
-

Zdravim

napadla ma taka vec. Chcel by som, cisto skusobne spravit aplikaciu, ktora by vyuzivala nejake data z "cudzich" webov. Povedzme CSFD, IMDB, ale idealne asi najskor cestovne poriadky z Atlasu.

Akym sposobom sa toto da riesit ? Chcem to skusit na .NETe, ale nezalezi na tom, ci to bude webova aplikacia, mobilna, pripadne desktopova. 

Nejake navrhy ? Vdaka

Nahlásit jako SPAM
IP: 212.89.227.–
Chrasty
~ Redaktor
+4
Posthunter
3. 9. 2012   #2
-
0
-

#1 Jan
Ahoj,

dělá se to přes API, které tyto servery "vystavují" světu. CSFD má JSON API, IMDB má taky JSON API, ale snad jen pro mobilní zařízení a ještě potřebuješ jejich písemný souhlas, abys ho mohl použít. Když budeš googlovat tato slovní spojení, najdeš víc:)

Nahlásit jako SPAM
IP: 193.179.196.–
VladislavK0
Super člen
4. 9. 2012   #3
-
0
-

Druha moznost je 

{
WebClient wc=new WebClient();
Uri u=new Uri("http://....");
String tx=wc.DownloadString(u); // kompletni kod stranky
nebo
Uri u1=new Uri("http://cesta na obrazek/obrazek.jpg");
wc.DownloadFile(u1,"jmenoLokalnihoSouboru.jpg");
}

Ale pozor toto zavání nelegální těžbou dat z cizích webu.

Nahlásit jako SPAM
IP: 89.24.91.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
Jan
~ Anonymní uživatel
187 příspěvků
4. 9. 2012   #4
-
0
-

Cez API by to zrejme bolo jednoduche, ale to parsovanie zase vyzera univerzalnejsie. Akurat mi pride, ze parsovat to HTML asi bude dost pracne ... .

Jo inak si nemyslim, ze to bude niekomu vadit. Ide mi fakt len o to vyskusat si to. Rozhodne to neplanujem pouzit :)

Nahlásit jako SPAM
IP: 212.89.227.–
ingiraxo+15
Grafoman
4. 9. 2012   #5
-
0
-

parsovat html je pracný.. ja takto dělal vlastní parser pro csfd.cz, páč jsem potřeboval informace o filmu a v app jsem filmy měl pod ID filmu na csfd.. takže jsem vše tahal z jejich serveru

je to sice pracný, ale pokud oni změní web nebo třeba upravěj část, tak můžeš upravovat parser znova.. lepší je jejich API, pokud je k dispozici

a  to, že to je nelegální bych ani neřešil.. aplikace se chová úplně stejně, jako kdyby csfd navštívil někdo přes prohlížeč.. krom toho věškerej obsah je indexovanej většinou, takže i tak se tam dostaneš skrze nějakej jejich odkaz nebo přes google (myslim třeba k obrázkům, informacím apod.)

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
VladislavK0
Super člen
4. 9. 2012   #6
-
0
-

Parsrovani HTML je easy jen musis umet pouzit jiz vymyslene

z webu si stahni knihovnu http://developer.mindtouch.com/en/docs/SgmlReader hned na te uvodni strance mas i jednoduchy navod jak ji pouzit ja ti dodam vytah z meho kodu, zjistis ze se jedna o totez.

{
	WebClient wc=new WebClient();
	Uri u=new Uri("http://....");
	String tx=wc.DownloadString(u); // kompletni kod stranky
	String xmlTx=getXhtmlResponse(tx);
	XmlDocument xDoc=new XmlDocument();
	xDoc.LoadXml(xmlTx);
	String xmlPath="rootTag/nextTag"; // skladba XPath je jiny hrnecek s kavou
	NodeList nl= xDoc.SelectNodes(xmlPath );
	Node n=xDoc.SelectSingleNode(xmlPath);
}

private string getXhtmlResponse(String html)
{
    string xhtml = "";
    try
    {
       string strOutputXhtml = String.Empty;
       SgmlReader reader = new SgmlReader();
       reader.DocType = "HTML";
       StringReader sr = new System.IO.StringReader(html);
       reader.InputStream = sr;
       StringWriter sw = new StringWriter();
       XmlTextWriter w = new XmlTextWriter(sw);
       reader.Read();
       while (!reader.EOF)
       {
          w.WriteNode(reader, true);
       }
       w.Flush();
       w.Close();
  
       xhtml = sw.ToString();
       xhtml = @"<?xml version=""1.0"" encoding=""windows-1250""?>" + xhtml;
   }
   catch (Exception)
   {
   }
   return xhtml;
}

 Hodne stesti

Nahlásit jako SPAM
IP: 89.24.91.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
Jan
~ Anonymní uživatel
187 příspěvků
5. 9. 2012   #7
-
0
-

Vdaka, toto sa hodi.

Ak to chapem spravne, ta kniznica vlastne konvertuje HTML na nejake XML ktore uz by potom nemal byt problem rozprasovat ? 

Nahlásit jako SPAM
IP: 212.89.227.–
VladislavK0
Super člen
5. 9. 2012   #8
-
0
-

Ano jedna se o plnohodnotne XML, jen pozor na sekce CDATA, kdyz jsem stim  pred casem pracoval tak to tyto sekce neumelo a spadlo to na nich.

No snad je to v dnesni verzi opravene

Nahlásit jako SPAM
IP: 89.24.8.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý