首页 > 解决方案 > 使用 HtmlAgilityPack 解析网站不会返回在浏览器上看到的值

问题描述

解析站点https://holfuy.com/en/weather/1284时, HtmlAgilityPack 为相关数据返回“-”。

   string url = "https://holfuy.com/en/weather/1284";
    var web = new HtmlWeb();
    web.PreRequest += request =>
    {
        request.CookieContainer = new System.Net.CookieContainer();
        return true;
    };
    HtmlDocument doc = web.Load(url);

    string data = doc.DocumentNode.SelectNodes("//*[@id=\"j_pressure\"]")[0].InnerText;
    Console.WriteLine(data);

这背后的原因是什么?

标签: c#html-agility-pack

解决方案


数据似乎是动态加载到页面中的,如果您需要解析它,您需要挂钩真正的浏览器,例如通过 Selenium 并使用其中一个可用的驱动程序,或者如果您不想包含整个 Selenium,只需挂钩一些无头浏览器直接喜欢phantom.js。完成后,只需为数据呈现、加载页面和解析设置一些小的延迟。

您可以在此处查看更多信息: 在 HtmlAgilityPack 中运行脚本


推荐阅读