使用這兩個(gè)組件,.NET 網(wǎng)頁截圖就這么簡單
前段時(shí)間有個(gè)需求,需要實(shí)現(xiàn)打開某個(gè)頁面,在修改頁面前截取圖片保存留底。在github找了兩個(gè)開源軟件方案,一個(gè)是PuppeteerSharp另外一個(gè)是Selenium.WebDriver。兩者都是可以實(shí)現(xiàn)無頭模式的網(wǎng)頁抓取工具,使用也非常簡單。下面介紹這兩個(gè)開源的組件以及他們抓取圖片的案例。
1、PuppeteerSharp
PuppeteerSharp 是一個(gè)用于在 .NET 平臺(tái)上控制無頭(Headless) Chrome 瀏覽器的庫。它允許開發(fā)者通過編程方式模擬瀏覽器行為,執(zhí)行網(wǎng)頁操作,截取網(wǎng)頁截圖,獲取網(wǎng)頁內(nèi)容,可以把網(wǎng)頁轉(zhuǎn)換成PDF等等。PuppeteerSharp 是 Puppeteer 在 .NET 環(huán)境中的等效實(shí)現(xiàn),Puppeteer 是由 Google 提供的一個(gè)用于控制無界面瀏覽器 Chrome 的工具。
抓取網(wǎng)頁圖片案例

具體大家可以參考github地址的官方使用說明。
github地址:github.com/hardkoded/puppeteer-sharp
2、Selenium.WebDriver
Selenium.WebDriver 是一個(gè)用于自動(dòng)化瀏覽器操作的 .NET 庫,它提供了一組 API,允許開發(fā)者模擬用戶在瀏覽器中的行為,從而進(jìn)行自動(dòng)化測(cè)試、數(shù)據(jù)抓取、網(wǎng)頁操作等操作。Selenium 是一個(gè)廣泛使用的工具,用于自動(dòng)化瀏覽器操作和測(cè)試,而 Selenium.WebDriver 是其在 .NET 平臺(tái)上的一個(gè)實(shí)現(xiàn)。同時(shí)Selenium.WebDriver也支持無頭模式。
抓取網(wǎng)頁圖片案例

具體大家可以參考github地址的官方使用說明。
github地址:github.com/SeleniumHQ/selenium
結(jié)語
本文介紹了兩種截圖的.NET庫,在使用上他們都依賴Chrome瀏覽器包,都支持無頭瀏覽。功能上來說PuppeteerSharp側(cè)重網(wǎng)頁內(nèi)容的處理,而Selenium.WebDriver側(cè)重于自動(dòng)化測(cè)試。缺點(diǎn)是依賴瀏覽器。
大家用過那些.NET的網(wǎng)也截圖庫,最好不依賴瀏覽器的庫,歡迎大家在文章下方留言和吐槽,共同分析和討論.NET的網(wǎng)也截圖這個(gè)話題。
來源公眾號(hào):DotNet開發(fā)跳槽