天天看點

JavaScript 擷取整個網頁的完整内容,包括 html 标簽。

在軟體開發過程中,可以使用以下代碼來擷取到 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();
    }
}      

繼續閱讀