Zdravím
Chtěl bych se zeptat, jak lze v C# získat pouze určitá data z webové stránky ?
Přiklad: chci si uložit User Names z tabulky na této stránce: http://worldoftanks.eu/community/clans/500027296-BERU/
Lze to vůbec nějak udělat ?
Zdravím
Chtěl bych se zeptat, jak lze v C# získat pouze určitá data z webové stránky ?
Přiklad: chci si uložit User Names z tabulky na této stránce: http://worldoftanks.eu/community/clans/500027296-BERU/
Lze to vůbec nějak udělat ?
Načteš si stránku jako zrojový kod přes WebClient (http://msdn.microsoft.com/…bclient.aspx) a pak jenom parse stringu :)
Podobný způsob jsem zkoušel nejprve v XML souboru tzn napsal sem do něj:
=ImportHtml("http://worldoftanks.eu/community/clans/500027296-BERU/"; "table";1)
ale vyhodilo mi to pouze názvy sloupců v tabulce, hodnoty v tabulce nikoliv.
#1 Tchoř
Ahoj kdyby jsi lep hledal tak by jsi v tomto foru nalezl v podstate jiz hotove reseni
http://programujte.com/forum/vlakno/21848-ziskanie-informacii-z-webu/#p162746
Díky za odpověď
Vyzkoušel sem dle tvé rady, nicméně to co potřebuji vypsat (Uživatelská jména z tabulky na výše uvedené stránce (http://worldoftanks.eu/community/clans/500027296-BERU/)) se stále nevypíše. resp. ve staženém kódu stránky tabulku s Uživatelskými jmény nemohu najít.
To bude tim, ze ty data v kodu stranky nejsou, tabulka se plni timhle scriptem:
http://worldoftanks.eu/static/3.15.0.4/clans/js/helper_members.js
#7 Tchoř
Opravte mne jestli se pletu ale
kazda WEB stranka si dotahuje obrazky, linky (a dalsi web componenty pomoci JS) ale kdyz se zobrazi tak tyto vseobecne nazvane objekty jsou proste videt v prohlizeci takze kdyz se uzivateli zobrazi "User name!" tak proste je zobrazeny vcetne ID toho objektu
pak nevydim problem v tom jestli se ty data daji vytezit nebo nikoli
#9 Tchoř
Ano takze z predcoziho prispevku se da k datum dostat
String xmlPath="rootTag/nextTag"; // skladba XPath je jiny hrnecek s kavou
NodeList nl= xDoc.SelectNodes(xmlPath );
Node n=xDoc.SelectSingleNode(xmlPath);
a v promene n je vse co potrebujes
Ale toto řešení stále pracuje se zdrojovým kódem té stránky neboť toto:
String tx = wc.DownloadString(u); // kompletni kod stranky
stáhne sice zdrojový kód stránky ve kterém se podle vás dají vyhledat data která potřebuji, nicméně ta data tam obsažena nejou resp. nikde jsem je tam nenalezel i když jsem text obsažený ve výše uvedené proměnné (" tx " ) prošel celý
Nevím co dělám špatně.
#11 Tchoř
Koukal jsem do te stranky a ty texty tam jsou.
Pokud DownloadString tyto texty nevrati pak to muze byt tim vyse zminenym javascriptem ale i toto se da obejit kdyz misto WebClienta pouzijes komponentu WebBrowser a pouzijes jeji udalost DocumentCompleted
Ahoj,
jak již bylo zmíněno, ta stránka si nejspíše některé informace dotahuje pomocí JS (AJAX) volání.
K řešení tedy můžeš přistoupit tak, že si otevřeš v prohlížeči developer tools a odsleduješ komunikaci. Ke sledování komunikace se též dá použít nějaká proxy, např. Fiddler. Pomocí toho si zjistíš, který dotaz vrací jaká data a pak budeš volat tento dotaz, nikoliv zmíněnou stránku.
Abych ti ušetřil práci, tak tvoje potřebná adresa je
/community/clans/500027296/members/?_=138372379763...order_by=name&search=&echo=1&id=clan_members_index
Pěkný den,
Děkuji, nicméně trošku jsem se zamotal v tom jak jste napsal, že mám volat pouze tento dotaz: /community/clans/500027296/members/?_=138372379763...order_by=name&search=&echo=1&id=clan_members_index a nikoliv zmíněnou stránku.
Jak mám zavolat pouze tento dotaz? Přes WebRequest ?
Ahoj,
ano, budeš volat jen tuto URL pomocí WebClienta a výsledek pak můžeš zpracovat, jelikož je to JSON, co se vrací, pomocí JSON.NET knihovny.
Pěkný den,
Když do webclienta přidám pouze tuto url: /community/clans/500027296/members/?_=138372379763...order_by=name&search=&echo=1&id=clan_members_index tak mi to vrátí chybu Neplatný identifikátor URL, když před to přidám ještě http://worldoftanks.eu/ tak mi vrátí chybu 404 nenalezeno
Ahoj,
cokoliv, co jde na klienta je možné následně zpracovat také automaticky, jde jen o to, jaké úsilí tomu věnuješ.
To číslo, které se přidává je nějaký vypočtený hash, který bude třeba najít, jak se v tom JS počítá.
Pěkný den,
Tak jsem zjisil že ve WebBrowser je metoda ShowSaveAsDialog, a tam možnost uložit stránku do TXT souboru kde je obsaženo vše co potřebuji,
nimcéně bych potřeboval by se obsah uložil automaticky bez vyskočení jakéhokoliv dialogu, lze to nějak obejít ?
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku