HtmlAgilityPack을 사용하여 href innertext 가져 오기

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

문제

나는 websites.so에서 HtmlAgilityPack 같은 html parser 를 사용하여 뉴스를 얻으려고 뉴스 에이전트를 만들려고 노력하고 있습니다. 그래서 여기에 내 코드를 볼 수 있습니다 :

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);
    }
}

여기에 내 HTML 코드를 구문 분석해야합니다 :

<a href="/news?p_p_id=56_INSTANCE_tVzMoLp4zfGh&amp;_56_INSTANCE_tVzMoLp4zfGh_mode=news&amp;_56_INSTANCE_tVzMoLp4zfGh_newsId=3153832&amp;p_p_state=maximized">› پانل «بررسي سازوکارهاي تأمين منابع مالي براي توسعۀ فناوري» به‌عنوان پانل برتر پنجمين کنفرانس بين‌المللي و نهمين کنفرانس ملي مديريت فناوري معرفي شد</a>


<a href="/news?p_p_id=56_INSTANCE_tVzMoLp4zfGh&amp;_56_INSTANCE_tVzMoLp4zfGh_mode=news&amp;_56_INSTANCE_tVzMoLp4zfGh_newsId=3135970&amp;p_p_state=maximized">› فرآیند و فرم درخواست استفاده از تسهیلات حمایتی بلاعوض صندوق نوآوری و شکوفایی جهت حضور شرکت های دانش بنیان در جایزه ملی مدیریت فناوری و نوآوری</a>

그래서 문제는 href link 얻을 수 있지만 href value 을 얻을 수 없다는 것입니다. 뉴스 URL을 얻을 수는 있지만 제목이 پانل «بررسي سازوکارهاي تأمين منابع مالي براي توسعۀ ٠ناوري» به‌عنوان پانل برتر پنجمين کن٠رانس بين‌المللي Ùˆ نهمين کن٠رانس ملي مديريت ٠ناوري معر٠ي شد 의미 href value . پانل «بررسي سازوکارهاي تأمين منابع مالي براي توسعۀ ٠ناوري» به‌عنوان پانل برتر پنجمين کن٠رانس بين‌المللي Ùˆ نهمين کن٠رانس ملي مديريت ٠ناوري معر٠ي شد .

어떻게해야합니까?

수락 된 답변

href의 innertext를 얻으려면이 코드를 사용해야합니다.

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

인기 답변

당신은 다음과 같이 사용할 수 있습니다 :

 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 
        }


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.