HtmlAgilityPack - 如何在函数中获取 Innerhtml 值{}

HtmlAgilityPack - how to get Innerhtml value in function{}

我正在尝试解析具有以下 html 行的网站

<script type="text/javascript">
$(document).ready(function() {
          set_rate()
});
function set_rate() {
    var rate_f = "1";
    $('#rate_c').html("1.10");
    $('#rate_g').html("7.00");
    $('#time').html("23/08/2021 Evening 02:31 PM");
}

我不了解 html 所以我无法将 HtmlAgilityPack 指向正确的节点。

我正在尝试获取 $('#rate_c').html("1.10"); 值 1.10, $('#rate_g').html("7.00"); 值 7.00 和 $('#time').html("23/08/2021 Evening 02:31 PM"); 值 23/08/2021 晚上 02:31 下午

我不是在尝试获取函数在 运行 JavaScript 之后给出的值,对我来说幸运的是 html 具有我正在寻找的值。

根据您在聊天中的评论,您可以尝试这样做:

Dim result = New With {.rate_c = "", .rate_g = "", .time = ""}

Dim doc As New HtmlAgilityPack.HtmlDocument
doc.Load("C:\Temp\test.html")

Dim scriptNodes = doc.DocumentNode.SelectNodes("//script")
For Each scriptNode In scriptNodes
    If scriptNode.InnerHtml.Contains("$('#rate_c').html(") Then
        result.rate_c = scriptNode.InnerHtml.Substring(scriptNode.InnerHtml.IndexOf("$('#rate_c').html(") + "$('#rate_c').html(".Length + 1)
        result.rate_c = result.rate_c.Substring(0, result.rate_c.IndexOf(""""))
    End If
    If scriptNode.InnerHtml.Contains("$('#rate_g').html(") Then
        result.rate_g = scriptNode.InnerHtml.Substring(scriptNode.InnerHtml.IndexOf("$('#rate_g').html(") + "$('#rate_g').html(".Length + 1)
        result.rate_g = result.rate_g.Substring(0, result.rate_g.IndexOf(""""))
    End If

    '--- ... similarly get other values here ...

Next

'-- lets see what we got!
MessageBox.Show($"rate_c={ result.rate_c}    rate_g={result.rate_g}")