【问题标题】:C# - SelectNode Return Null in HtmlAgilityPackC# - SelectNode 在 HtmlAgilityPack 中返回 Null
【发布时间】:2016-07-05 00:18:32
【问题描述】:

我正在尝试从 Instagram 个人资料中获取一些信息。 我用 Google Chrome 生成了 XPath

//*[@id="react-root"]/section/main/article/div/div[1]/div

但是,什么也没找到。 我只能找到了

  //*[@id="react-root"]

这是一个**<span>**

什么都没有,有什么原因吗?我做错了吗?

var baseURL = "https://www.instagram.com/";

var client = new HtmlWeb();


var paginaPerfil = client.Load(baseURL + "belalao");


var nos = paginaPerfil.DocumentNode.SelectNodes("//*[@id='react-root']/section/main/article/div/div[1]/div");
            var quantidade = nos == null ? 0 : nos.Count;

【问题讨论】:

    标签: c# html-agility-pack selectnodes


    【解决方案1】:

    此时,https://www.instagram.com/belalao 有一个空的<span id="react-root"></span>,因此您的代码按预期工作。也许您期望使用 React 组件填充 DOM 的 JavaScript 已经执行,但 HtmlAgilityPack 只会分析您下载的 initial HTML,不会执行 JavaScript 并在之后进行分析。

    在页面上查看源代码(与使用 DOM 检查器不同),您将看到它所看到的内容。

    【讨论】:

    • 该死的真相。我现在知道了。以及有什么办法可以在JavaScript执行后获取HTML代码?
    • 您可以尝试使用 PhantomJS 之类的无头浏览器。我不确定 React 是否兼容。
    猜你喜欢
    • 1970-01-01
    • 2014-05-30
    • 2013-08-05
    • 2017-05-20
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    相关资源
    最近更新 更多