2009-10-28 12 views
2

Folks, Je suis tryning pour extraire des données de la page web en utilisant C# .. pour le moment j'ai utilisé le Stream de la WebReponse et je l'ai analysé comme une grande chaîne. C'est long et douloureux. Quelqu'un sait-il meilleur moyen d'extraire des données de la page Web? Je dis winhttp mais n'est pas pour C# ..Extrait de la page web

Répondre

0

Si la page Web est valide XHTML, vous pouvez le lire dans un XPathDocument et XPath votre chemin rapidement et facilement directement aux données tu veux. Si ce n'est pas du XHTML valide, je suis sûr qu'il y a des parseurs HTML que vous pouvez utiliser.

Trouvé une question similaire avec une réponse qui devrait aider. Looking for C# HTML parser

5

Pour télécharger des données à partir d'une page Web, il est plus facile à utiliser WebClient:

string data; 
using (var client = new WebClient()) 
{ 
    data = client.DownloadString("http://www.google.com"); 
} 

Pour l'analyse données téléchargées, à condition qu'il soit HTML, vous pouvez utiliser l'excellente bibliothèque Html Agility Pack.

Et voici un exemple complet extraire tous les liens d'une page donnée:

class Program 
{ 
    static void Main(string[] args) 
    { 
     using (var client = new WebClient()) 
     { 
      string data = client.DownloadString("http://www.google.com"); 
      HtmlDocument doc = new HtmlDocument(); 
      doc.LoadHtml(data); 

      var nodes = doc.DocumentNode.SelectNodes("//a[@href]"); 
      foreach(HtmlNode link in nodes) 
      { 
       HtmlAttribute att = link.Attributes["href"]; 
       Console.WriteLine(att.Value); 
      } 
     } 
    } 
} 
+0

pouvez-vous s'il vous plaît expliquer un peu plus –

Questions connexes