gpt4 book ai didi

c# - 使用c#或者vb.net获取最终生成的html源码

转载 作者:太空狗 更新时间:2023-10-29 19:44:13 28 4
gpt4 key购买 nike

使用 VB.net 或 c#,如何获取生成的 HTML 源代码?

要获取页面的 html 源代码,我可以在下面使用它,但这不会获取生成的源代码,它不会包含任何由浏览器中的 javascript 动态添加的 html。如何获取最终生成的 HTML 源代码?

谢谢

WebRequest req = WebRequest.Create("http://www.asp.net"); 
WebResponse res = req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
string html = sr.ReadToEnd();

如果我在下面尝试这个,它会返回没有注入(inject) JavaScript 代码的文档

Public Class Form1

Dim WB As WebBrowser = Nothing

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

WB = New WebBrowser()
Me.Controls.Add(WB)
AddHandler WB.DocumentCompleted, AddressOf WebBrowser1_DocumentCompleted


WB.Navigate("mysite/Default.aspx")

End Sub

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs)


'Dim htmlcode As String = WebBrowser1.Document.Body.OuterHtml()
Dim s As String = WB.DocumentText

End Sub
End Class

返回的 HTML

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>

</head>
<body>
<form id="form1" runat="server">
<div id="center_text_panel">
//test text this text should be here
</div>
</form>
</body>
</html>

<script type="text/javascript">

document.getElementById("center_text_panel").innerText = "test text";


</script>

最佳答案

您可以使用 WebKit.NET

Look here求官方教程

这样既可以抓取源码,又可以通过pageload事件处理javascript。

webKitBrowser1.Navigate(MyURL)

然后,处理 DocumentCompleted 事件,并且:

private documentContent = webKitBrowser1.DocumentText

编辑 - 这可能是更好的开源 WebKit 选项:http://code.google.com/p/open-webkit-sharp/

关于c# - 使用c#或者vb.net获取最终生成的html源码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14847656/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com