Obtenez le texte interne href avec HtmlAgilityPack

.net c# html html-agility-pack html-parser

Question

J'essaie de créer un agent de presse pour obtenir les nouvelles des sites Web. Je dois donc utiliser un html parser tel que HtmlAgilityPack .

public async void parsing(string website)
{
    HttpClient http = new HttpClient();
    var response = await http.GetByteArrayAsync(website);
    String source = Encoding.GetEncoding("utf-8").GetString(response, 0, response.Length - 1);
    source = WebUtility.HtmlDecode(source);
    HtmlDocument resultat = new HtmlDocument();
    resultat.LoadHtml(source);
    List<HtmlNode> toftitle = resultat.DocumentNode.Descendants().Where
      (x => (x.Name == "div" && x.Attributes["class"] != null && x.Attributes["class"].Value.Contains("latest-news"))).ToList();
    var li = toftitle[0].Descendants("li").ToList();
    foreach (var item in li)
    {
        var link = item.Descendants("a").ToList()[0].GetAttributeValue("href", null);
        var img = item.Descendants("img").ToList()[0].GetAttributeValue("src", null);
    }
}

voici mon code html qui devrait être analysé:

public async void parsing(string website)
{
    HttpClient http = new HttpClient();
    var response = await http.GetByteArrayAsync(website);
    String source = Encoding.GetEncoding("utf-8").GetString(response, 0, response.Length - 1);
    source = WebUtility.HtmlDecode(source);
    HtmlDocument resultat = new HtmlDocument();
    resultat.LoadHtml(source);
    List<HtmlNode> toftitle = resultat.DocumentNode.Descendants().Where
      (x => (x.Name == "div" && x.Attributes["class"] != null && x.Attributes["class"].Value.Contains("latest-news"))).ToList();
    var li = toftitle[0].Descendants("li").ToList();
    foreach (var item in li)
    {
        var link = item.Descendants("a").ToList()[0].GetAttributeValue("href", null);
        var img = item.Descendants("img").ToList()[0].GetAttributeValue("src", null);
    }
}

Donc, le problème est que je peux obtenir le href link mais pas la href value Je veux dire que je peux obtenir l’URL de la nouvelle mais pas le titre پانل «بررسي سازوکارهاي تأمين منابع مالي براي توسعۀ ٠ناوري» به‌عنوان پانل برتر پنجمين کن٠رانس بين‌المللي Ùˆ نهمين کن٠رانس ملي مديريت ٠ناوري معر٠ي شد .

Comment puis-je l'obtenir?

Réponse acceptée

Je devrais juste utiliser ce code pour obtenir le innertext de href:

string tistle = item.Descendants("a").ToList()[0].InnerText;

Réponse populaire

vous pouvez utiliser comme ceci:

 HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
 doc.LoadHtml(result);
 foreach (HtmlNode link in doc.DocumentNode.SelectNodes("a"))
        {
            string value = link.InnerText; // here you can get href value 
        }



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi