一個(gè)瀏覽器自動(dòng)化操作的.Net開源庫
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
推薦一個(gè).Net開源庫,方便通過高級(jí)API來控制Chromium 瀏覽器。 這是一個(gè)基于 Google 開源的 Node.js 庫 Puppeteer 的 .NET 開源庫,方便開發(fā)人員使用無頭 Web 瀏覽器抓取 Web、檢索 Javascript 呈現(xiàn)的 HTML,以及與 UI 元素交互等功能。 比如可以用來抓取網(wǎng)頁、生成頁面 PDF 或者圖片、網(wǎng)頁截屏,以及進(jìn)行自動(dòng)化測(cè)試等。 1、操作瀏覽器:比如新開/關(guān)閉瀏覽器窗口核標(biāo)簽、返回頁面、打印頁面、重新加載頁面等; 2、執(zhí)行Javascript腳本:執(zhí)行Js代碼/函數(shù)等; 3、操作Html頁面:比如獲取元素的屬性、文本內(nèi)容,插入、更改元素等; 4、模擬鼠標(biāo)操作:模擬點(diǎn)擊頁面元素、雙擊頁面元素、拖動(dòng)頁面元素等; 5、模擬鍵盤輸入:輸入文字、按下按鍵、摁住按鍵等; 6、頁面事件:等待頁面加載完畢、字體加載等事件。 1、網(wǎng)頁截屏 using PuppeteerSharp; using var browserFetcher = new BrowserFetcher(); await browserFetcher.DownloadAsync(); await using var browser = await Puppeteer.LaunchAsync( new LaunchOptions { Headless = true }); await using var page = await browser.NewPageAsync(); await page.GoToAsync("http://www.xxx.com"); var outputFile = "screenshot.jpg"; await page.ScreenshotAsync(outputFile); 2、生成頁面PDF using PuppeteerSharp; using var browserFetcher = new BrowserFetcher(); await browserFetcher.DownloadAsync(); await using var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }); await using var page = await browser.NewPageAsync(); await page.GoToAsync("http://www.xxx.com"); //等待字體加載完畢 await page.EvaluateExpressionHandleAsync("document.fonts.ready"); var outputFile = "page.pdf"; await page.PdfAsync(outputFile); 3、加載頁面并獲取頁面的所有超鏈接 using PuppeteerSharp; using System; //瀏覽器配置 var options = new LaunchOptions { Headless = true }; await new BrowserFetcher().DownloadAsync(); //打開瀏覽器 using (var browser = await Puppeteer.LaunchAsync(options)) using (var page = await browser.NewPageAsync()) { //加載頁面 await page.GoToAsync("http://www.xxx.com"); //獲取所有超鏈接 var jsselectAllAnchors = @"Array.from(document.queryselectorAll('a')).map(a => a.href);"; var urls = await page.EvaluateExpressionAsync<string[]>(jsselectAllAnchors); foreach (string url in urls) { Console.WriteLine($"Url: {url}"); } Console.ReadLine(); } https://github.com/hardkoded/puppeteer-sharp 該文章在 2023/12/13 18:35:11 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |