使用 HtmlAgilityPack 解析网站不会 return 在浏览器上看到的值

Parsing web site using HtmlAgilityPack does not return values as seen on browser

解析站点时https://holfuy.com/en/weather/1284 HtmlAgilityPack returns "-" 为相关数据。

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

这背后的原因是什么?

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

您可以在此处查看更多信息: Running Scripts in HtmlAgilityPack