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}")
我正在尝试解析具有以下 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}")