如何用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);