在軟體開發過程中,可以使用以下代碼來擷取到 body 标簽中的内容:
document.body.innerHTML
但上述方式無法擷取到諸如 head、html 等 body 标簽之外的元素内容。如果需要擷取整個網頁上完整的 html 内容,可以使用以下 JavaScript 代碼:
document.documentElement.outerHTML
在 CefSharp 中擷取網頁的完整 HTML 輸出
在 CefSharp 中,可以通過 ChromiumWebBrowser 類型的 GetSourceAsync 方法擷取網頁的源代碼。該方法傳回的字元串包含 html 标簽,但不包含通過 JavaScript 動态渲染出的内容。
如果想擷取包含動态渲染的内容(比如采集場景下),可以通過運作 JavaScript 代碼的方式實作:
public static async Task<string> GetDocumentHtml(ChromiumWebBrowser browser)
{
var result = await browser.EvaluateScriptAsync("document.documentElement.outerHTML");
if (result.Success)
{
return result.Result.ToString();
}
else
{
return await browser.GetSourceAsync();
}
}