我在我的WinForm项目中使用CefSharp v55.0。页面加载后,我希望从中获得HTML代码。为此,我使用了以下内容:
private void WebBrowserFrameLoadEnded(object sender, FrameLoadEndEventArgs e)
{
if (e.Frame.IsMain)
{
test.ViewSource();
test.GetSourceAsync().ContinueWith(code =>
{
var html = code.Result;
});
}
}
对于交叉检查,我还调用了test.ViewSource()方法,以查看GetSourceAsync方法是否获得了完整的代码。
不幸的是,代码是不同的。ViewSource获取了全部代码,但GetSourceAsync没有通过页面中生成的javascript获取代码。
请告诉我一个方法来获得网页的源代码,如ViewSource,或告诉我如何捕获此ViewSource方法的临时文件。
干杯。
发布于 2017-09-20 15:41:23
试试这个,它对我很有效:
public void showSource() // <<<<<<<<<<<<<<<<<<<<<<<<<< Call this function
{
Task ts = getSource();
}
private async Task getSource()
{
try
{
//
string source = await chromeBrowser.GetBrowser().MainFrame.GetSourceAsync();
//
string f = Application.StartupPath + "\\currentSource.txt";
//
StreamWriter wr = new StreamWriter(f, false, System.Text.Encoding.Default);
wr.Write(source);
wr.Close();
//
System.Diagnostics.Process.Start(f);
//
}
catch (Exception)
{
//Error !
}
}
发布于 2018-08-08 03:36:30
VB.Net:
Sub ShowSource()
Dim ts As task = getSource()
End Sub
Private Async Function getSource() As Task
Dim source As String = Await wb.GetBrowser().MainFrame.GetSourceAsync()
Dim f As String = Application.StartupPath + "/currentSource.txt"
Dim wr As StreamWriter = New StreamWriter(f, False, System.Text.Encoding.Default)
wr.Write(source)
wr.Close()
System.Diagnostics.Process.Start(f)
End Function
https://stackoverflow.com/questions/43451312
复制相似问题