2010-02-20 5 views
1

De here, j'essaie d'obtenir des données de cotations boursières pour chaque intervalle de 10 minutes.html problème d'analyse en utilisant C#

J'ai utilisé WebClient pour télécharger le contenu de la page et pour l'analyse j'ai utilisé des expressions régulières. Cela fonctionne bien pour d'autres URL. Pour le URL particulier, mon code d'analyse ne fonctionne pas.

Je pense que c'est le problème avec javascript, Lorsque je charge la page dans le navigateur, après le chargement du contenu de la page, il a fallu un peu de temps pour tracer les données. Peut-être que ce type utilise un script côté client pour cette page. Quelqu'un peut-il m'aider S'il vous plaît ..........

+0

Quelle information voulez-vous de cette page? –

+0

Salut Mark, Dans cette page, j'ai besoin de valeur d'intérêt ouvert. – Raghu

Répondre

4

HTML Agility Pack vous permettra d'économiser des tonnes de maux de tête. Try it au lieu d'utiliser regexps pour analyser HTML.

Pour ce que ça vaut, dans la page un lien vers les données citation est en effet dans le code Javascript, vérifiez http://www.nseindia.com/js/getquotedata.js et http://www.nseindia.com/js/quote_data.js

+0

+1 D'accord, et bien sur le lien obligatoire: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –

+0

Salut Vinko, je suivra votre suggestion. Merci pour votre aide ...... – Raghu

+0

Bonjour Vinko, encore un doute, j'ai téléchargé le contenu du lien vers String comme le suggère @Asad Butt, Quand je vois la source de ce String il n'y a pas de valeurs (Open Interest) dedans. Je pense que ceux-ci génèrent dynamiquement ce rapport en utilisant JavaScript. Cette situation peut-elle être gérée par le HTML Agility Pack? – Raghu

2

selon réponse @Vinko Vrsalovic, Html Agility pack est votre ami. Voici un exemple

WebClient client = new WebClient(); 
    string source = client.DownloadString(url); 

    HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument(); 
    document.LoadHtml(source); 

    HtmlNodeCollection nodes = document.DocumentNode.SelectNodes("//*[@href]"); 

    foreach (HtmlNode node in nodes) 
    { 
    if (node.Attributes.Contains("class")) 
    { 
    if (node.Attributes["class"].Value.Contains("StockData")) 
    {// Here is our info } 
    } 
    } 
Questions connexes