2017-05-05 1 views
-1

je travaille sur le programme pour extraire les liens de la page Web et les filtrer ce mon code à ce jour en utilisant HtmlAgilityPackliens de filtre sur page web par extensions de fichiers

HtmlWeb hw = new HtmlWeb(); 
     HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
     doc = hw.Load(txt_url.Text); 
     foreach (HtmlNode link in doc.DocumentNode.SelectNodes("a//[@href]")) 
     { 
      // Get the value of the HREF attribute 
      string hrefValue = link.GetAttributeValue("href", string.Empty); 
      listbox1.Items.Add(hrefValue); 

     } 

ce code est d'extraire tous les liens de la page Web afin ma question est de savoir comment filtrer ces URLs par l'extension comme ".html"

Répondre

1

Utilisez la méthode WebClient.DownloadString pour obtenir le code HTML. Puis, utilisez un motif regex sur la chaîne pour capturer toutes les URL.

1

Vous devez d'abord faire une requête HTTP GET et obtenir le corps de la réponse avec le code HTML.

//Request HTTP GET 

ServicePointManager.Expect100Continue = false; 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
request.Proxy = null; 
request.Method = "GET"; 

WebResponse response; 
string html = ""; 

response = request.GetResponse(); 
StreamReader sr = new StreamReader(response.GetResponseStream()); 
html = sr.ReadToEnd(); 
sr.Close(); 
response.Close(); 

Ensuite, vous pouvez analyser le code HTML avec une expression régulière pour extraire les fichiers désirés.