c# - C#中使用HtmlAgilityPack解析网页信息

标签 c# html html-agility-pack

我正在尝试使用 HtmlAgilityPack 来解析网页信息。这是我的代码:

using System;
using HtmlAgilityPack;

namespace htmparsing
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            string url = "https://bugs.eclipse.org";
            HtmlWeb web = new HtmlWeb();
            HtmlDocument doc = web.Load(url);
            foreach(HtmlNode node in doc){
                //do something here with "node"
            }               
        }
    }
}

但是当我尝试访问 doc.DocumentElement.SelectNodes 时,我在列表中看不到 DocumentElement。我在引用中添加了 HtmlAgilityPack.dll,但我不知道是什么问题。

最佳答案

我有一篇文章演示了如何使用 ASP.NET 通过 HAP (HTML Agility Pack) 抓取 DOM 元素。它只是让您逐步完成整个过程。您可以看看并尝试一下。

Scraping HTML DOM elements using HtmlAgilityPack (HAP) in ASP.NET

关于您的流程,它对我来说工作正常。我已经尝试过这种方式,就像您对单个更改所做的那样。

string url = "https://www.google.com";
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(url);
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//a")) 
{
    outputLabel.Text += node.InnerHtml;
}

得到了预期的输出。问题是您要从 HtmlDocument 对象请求 DocumentElement,实际上应该是 DocumentNode。以下是 HTMLAgilityPack 开发人员对您遇到的问题的回复。

HTMLDocument.DocumentElement not in object browser

关于c# - C#中使用HtmlAgilityPack解析网页信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19870116/

相关文章:

c# - 将 TelemetryClient 的静态实例与 Application Insights 结合使用

html - 谁能解释为什么某个部分不以我的页面为中心?

php - 如何使用 PHP 将不同的用户选择的 SQL 表显示为 html 表?

c# - 如何从 HttpWebRequest 中的 DropDownList 中进行选择

c# - 如何在 ASP.NET Core 中获取 Url 参数路由

c# - 使用 web.config 转换在 vs2012 中进行本地部署

c# - WinRT 中的 System.Reflection.Assembly.GetExecutingAssembly()

html - Internet Explorer 不呈现按钮悬停

c# - HTML Agility Pack 获取所有输入字段

c# - 无法检索 html 列表中的 li 节点