如何用WebView2控件解析文本
How to parse text with WebView2 control
我需要从不加载旧 Web 浏览器控件的网站获取不断变化的文本,因此我第一次移动 WebView2
我要解析的html是:
<td data-v-39c7db2a="" class="text-right">
0.0000%
</td>
我需要的值是百分比。
我使用的代码是
Private Sub WebView2_NavigationCompleted(sender As Object, e As CoreWebView2NavigationCompletedEventArgs) Handles WebView2.NavigationCompleted
Dim text As String = Await WebView2.ExecuteScriptAsync("document.getElementById('text-right').selectedIndex")
MessageBox.Show(text)
它只是return一个带有“null”的消息框
现在从旧的 webbrowser 控件移动到 WebView 有点复杂,也是因为缺少文档。
这与 WebView2
没有真正关联,而是一个纯粹的 javascript 问题。
您需要使用:
document.querySelector('td.text-right').textContent
此 returns 名称为 class 的第一个 table 单元格的文本 'text-right'。
但是,如果有多个 table 单元格的 class 名称为“text-right”,这可能对您不起作用。
在这种情况下,您可以查询第 n 个 child,其中 n
是 child 索引:
document.querySelector('td.text-right:nth-child(7)').textContent
获取百分比值作为 Double
:
Dim percent as Double = Double.Parse(Regex.Match(text, "[\d.]+").ToString(), CultureInfo.InvariantCulture);
我需要从不加载旧 Web 浏览器控件的网站获取不断变化的文本,因此我第一次移动 WebView2
我要解析的html是:
<td data-v-39c7db2a="" class="text-right">
0.0000%
</td>
我需要的值是百分比。 我使用的代码是
Private Sub WebView2_NavigationCompleted(sender As Object, e As CoreWebView2NavigationCompletedEventArgs) Handles WebView2.NavigationCompleted
Dim text As String = Await WebView2.ExecuteScriptAsync("document.getElementById('text-right').selectedIndex")
MessageBox.Show(text)
它只是return一个带有“null”的消息框 现在从旧的 webbrowser 控件移动到 WebView 有点复杂,也是因为缺少文档。
这与 WebView2
没有真正关联,而是一个纯粹的 javascript 问题。
您需要使用:
document.querySelector('td.text-right').textContent
此 returns 名称为 class 的第一个 table 单元格的文本 'text-right'。
但是,如果有多个 table 单元格的 class 名称为“text-right”,这可能对您不起作用。
在这种情况下,您可以查询第 n 个 child,其中 n
是 child 索引:
document.querySelector('td.text-right:nth-child(7)').textContent
获取百分比值作为 Double
:
Dim percent as Double = Double.Parse(Regex.Match(text, "[\d.]+").ToString(), CultureInfo.InvariantCulture);