c# - 使用 HtmlAgilityPack 获取 href innertext

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

我正在尝试创建一个新闻代理以从网站获取新闻。所以我必须使用 html 解析器,例如 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);
    }
}

这是我应该解析的 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 链接 但不是 href 值 。我的意思是我可以获得新闻 url 但不是标题تأمين منابع مالي براي توسعی وناوري» los پانل برتر پنومين کنوسعووري بينوري پانل برتر پنومين ک́رامس بين‌لن ?????????????????

我怎样才能得到它?

最佳答案

你可以这样使用:

 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 
        }

关于c# - 使用 HtmlAgilityPack 获取 href innertext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34824976/

相关文章:

c# - 生成带步长值的序列

html - 居中的 div 在顶部被切断?

c# - Swagger 代码生成 IO : Change Service Naming Convention and Nickname

c# - 如何验证数字签名?

c# - using 和 await using 有什么区别?我如何决定使用哪一个?

c# - 如何通过 C# 代码在 MySql 中创建存储过程

html - 哪个更好,变换: translate or Position : absolute

html - 用html制作星星

c# - 计算 double 最后一位的单位 (ULP)

C# 从包含数字和单词的字符串中获取数字序列?