<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          使用這兩個組件,.NET 網(wǎng)頁截圖就這么簡單

          共 3567字,需瀏覽 8分鐘

           ·

          2023-08-25 05:31

              前段時間有個需求,需要實現(xiàn)打開某個頁面,在修改頁面前截取圖片保存留底。在github找了兩個開源軟件方案,一個是PuppeteerSharp另外一個是Selenium.WebDriver。兩者都是可以實現(xiàn)無頭模式的網(wǎng)頁抓取工具,使用也非常簡單。下面介紹這兩個開源的組件以及他們抓取圖片的案例。

          1、PuppeteerSharp

          PuppeteerSharp 是一個用于在 .NET 平臺上控制無頭(Headless) Chrome 瀏覽器的庫。它允許開發(fā)者通過編程方式模擬瀏覽器行為,執(zhí)行網(wǎng)頁操作,截取網(wǎng)頁截圖,獲取網(wǎng)頁內(nèi)容,可以把網(wǎng)頁轉(zhuǎn)換成PDF等等。PuppeteerSharp 是 Puppeteer 在 .NET 環(huán)境中的等效實現(xiàn),Puppeteer 是由 Google 提供的一個用于控制無界面瀏覽器 Chrome 的工具。

          抓取網(wǎng)頁圖片案例

                
                  
                    //初始化瀏覽器
                  
                
                
                  await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultChromiumRevision);
                
                
                  var browser = await Puppeteer.LaunchAsync(new LaunchOptions
                
                
                  {
                
                
                      Headless = true//是否隱藏瀏覽器,true為隱藏
                
                
                  });
                
                
                  
                    // 創(chuàng)建一個頁面對象
                  
                
                
                  var page = await browser.NewPageAsync();
                
                
                  
                    // 導(dǎo)航到指定的URL
                  
                
                
                  await page.GoToAsync("https://www.baidu.com");
                
                
                  
                    //截圖     FullPage是全屏
                  
                
                
                  await page.ScreenshotAsync("test001.png",new ScreenshotOptions() { FullPage=true });
                
              
          具體大家可以參考github地址的官方使用說明。 github地址:github.com/hardkoded/puppeteer-sharp


          2、Selenium.WebDriver

          Selenium.WebDriver 是一個用于自動化瀏覽器操作的 .NET 庫,它提供了一組 API,允許開發(fā)者模擬用戶在瀏覽器中的行為,從而進(jìn)行自動化測試、數(shù)據(jù)抓取、網(wǎng)頁操作等操作。Selenium 是一個廣泛使用的工具,用于自動化瀏覽器操作和測試,而 Selenium.WebDriver 是其在 .NET 平臺上的一個實現(xiàn)。同時Selenium.WebDriver也支持無頭模式。

          抓取網(wǎng)頁圖片案例

                
                     public void WebDriverGetPic()
                
                
                          {
                
                
                              // 初始化 ChromeDriver
                
                
                              var chromeOptions = new ChromeOptions();
                
                
                              chromeOptions.AddArgument("--headless"); // 使用無頭模式,即不顯示瀏覽器界面
                
                
                              string currentDirectory = Environment.CurrentDirectory+ "\\selenium-manager\\windows\\";
                
                
                              chromeOptions.BinaryLocation = "selenium-manager.exe";
                
                
                              using (var driver = new ChromeDriver(chromeOptions))
                
                
                              {
                
                
                                  // 要截取的網(wǎng)頁的 URL
                
                
                                  var url = "https://www.baidu.com"; // 替換為你想要截取的網(wǎng)頁的 URL
                
                
                  
                    
          // 打開網(wǎng)頁 driver.Navigate().GoToUrl(url);
          // 等待網(wǎng)頁加載完成 System.Threading.Thread.Sleep(5000); // 這里等待 5 秒,你可以根據(jù)實際情況調(diào)整等待時間
          // 截取整個網(wǎng)頁的截圖 var screenshot = ((ITakesScreenshot)driver).GetScreenshot();
          // 保存截圖為文件 screenshot.SaveAsFile("screenshot.png", ScreenshotImageFormat.Png); } }
          具體大家可以參考githu b 地址的官方使用說明 github地址:github.com/SeleniumHQ/selenium


          結(jié)語

          本文介紹了兩種截圖的.NET庫,在使用上他們都依賴Chrome瀏覽器包,都支持無頭瀏覽。功能上來說PuppeteerSharp側(cè)重網(wǎng)頁內(nèi)容的處理,而Selenium.WebDriver側(cè)重于自動化測試。缺點是依賴瀏覽器。 大家用過那些.NET的網(wǎng)也截圖庫,最好不依賴瀏覽器的庫,歡迎大家在文章下方留言和吐槽,共同分析和討論.NET的網(wǎng)也截圖這個話題。

          版權(quán)聲明:本文來源于網(wǎng)友收集或網(wǎng)友供稿,僅供學(xué)習(xí)交流之用,如果有侵權(quán),請轉(zhuǎn)告小編或者留言,本公眾號立即刪除。


              

          關(guān)注公眾號DotNet開發(fā)跳槽?    

                

          9f7be7fe28455b97a7ee6254f688d5da.webp

          3ca5d99977cbb01df352f0c2b7a96e6a.webp

          09c054bcd748ffe91f4b80e327bc4df3.webp

          點在看

          瀏覽 34
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大香蕉伊思人在线 | 狼友在线播放 | 黄色影片A片 | 欧美日韩在线免费看 | 免费A片小视频 |