5

我在我的 VB.net (Visual Studio 2017) 项目中成功地在 WebView2 上显示了一个网站,但无法获取 html 源代码。请告诉我如何获取html代码。

我的代码:

Private Sub testbtn_Click(sender As Object, e As EventArgs) Handles testbtn.Click
        WebView2.CoreWebView2.Navigate("https://www.microsoft.com/")
End Sub

Private Sub WebView2_NavigationCompleted(sender As Object, e As CoreWebView2NavigationCompletedEventArgs) Handles WebView2.NavigationCompleted
        Dim html As String = ?????
End Sub

确实感谢您提前提出建议。

4

2 回答 2

20

我今天早些时候也刚刚开始弄乱 WebView2,并且只是在寻找同样的东西。我确实设法拼凑出这个解决方案:

Dim html As String
html = Await WebView2.ExecuteScriptAsync("document.documentElement.outerHTML;")

' The Html comes back with unicode character codes, other escaped characters, and
' wrapped in double quotes, so I'm using this code to clean it up for what I'm doing.
html = Regex.Unescape(html)
html = html.Remove(0, 1)
html = html.Remove(html.Length - 1, 1)

即时将我的代码从 C# 转换为 VB,因此希望不会错过任何语法错误。

于 2020-06-19T00:05:02.600 回答
3

添加到@Xaviorq8 答案,您可以使用以下方法Span来摆脱生成新字符串Remove

html = Regex.Unescape(html)
html = html.AsSpan()[1..^1].ToString();
于 2020-12-01T11:37:02.913 回答