【问题标题】:C# Html parsingC# Html 解析
【发布时间】:2017-12-07 17:41:44
【问题描述】:

我试图在我的 C# 项目中解析 HTML,但没有成功,我正在使用 HtmlAgilityPack 库来执行此操作,我可以获得一些 HTML 正文文本,但由于某种原因不能全部获取。 我需要获取 ID 为 latestPriceSection 的 div,并从 https://www.monero.how/widget 过滤到美元值

我的功能(不起作用)

public void getXMRRate()
{
    HtmlWeb web = new HtmlWeb();
    HtmlAgilityPack.HtmlDocument document = web.Load("https://www.monero.how/widget");
    HtmlNode[] nodes = document.DocumentNode.SelectNodes("//a").Where(x => x.InnerHtml.Contains("latestPriceSection")).ToArray();
    foreach (HtmlNode item in nodes)
    {
        Console.WriteLine(item.InnerHtml);
    }
}

【问题讨论】:

  • 您确认文档字符串包含您认为的html吗?
  • 是的,我可以确认。只要我不: Where(x => x.InnerHtml.Contains("latestPriceSection")).ToArray();

标签: c# html html-agility-pack


【解决方案1】:

您的功能不起作用,因为小部件是通过脚本更新的。加载页面时,div 不包含任何内容。您不能使用 HAP 来抓取此信息。寻找可以为您提供所需信息的网络服务。

或者,您可以在页面加载脚本后使用 Selenium 获取 HTML。或者你是 WebBrowser 类,但这需要你有一个表单应用程序,其中表单包含 WebBrowser。

【讨论】:

    【解决方案2】:

    您需要从 https://www.monero.how/widgetLive.json 检索 JSON 数据,因为小部件在 Ajax 请求中使用此资源。

    【讨论】:

      猜你喜欢
      • 2011-11-09
      • 2016-03-09
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 2012-10-11
      • 1970-01-01
      相关资源
      最近更新 更多