歡迎光臨
每天分享高質量文章

PuppeteerSharp: 更友好的 Headless Chrome C# API

前端就有了對 headless 瀏覽器的需求,最多的應用場景有兩個

  1. UI 自動化測試:擺脫手工瀏覽點選頁面確認功能樣式
  2. 爬蟲:解決頁面內容非同步載入等問題

也就有了很多傑出的實現,前端經常使用的莫過於 PhantomJS 和 selenium-webdriver,但兩個庫有一個共性——難用!環境安裝複雜,API 呼叫不友好,1027 年 Chrome 團隊連續放了兩個大招 Headless Chrome 和對應的 NodeJS API Puppeteer,直接讓 PhantomJS 和 Selenium IDE for Firefox 作者宣佈沒必要繼續維護其產品.

Puppeteer

如同其 github 專案介紹:Puppeteer 是一個透過 DevTools Protocol https://chromedevtools.github.io/devtools-protocol/ 控制 headless chrome 的 high-level Node 庫,也可以透過設定使用 非 headless Chrome

我們手工可以在瀏覽器上做的事情 Puppeteer 都能勝任

  1. 生成網頁截圖或者 PDF
  2. 爬取大量非同步渲染內容的網頁,基本就是人肉爬蟲
  3. 模擬鍵盤輸入、表單自動提交、UI 自動化測試

PuppeteerSharp

Puppeteer Sharp是官方Node.JS Puppeteer API :https://github.com/GoogleChrome/puppeteer的.NET 移植

  1. 由於Puppeteer-Sharp是NetStandard 2.0庫,因此最低平臺版本是.NET Framework 4.6.1和.NET Core 2.0
  2. 支援WebSocket庫的最低Windows版本是Windows 8和Windows Server 2012,具體參見https://docs.microsoft.com/en-us/dotnet/api/system.net.websockets?redirectedfrom=MSDN&view;=netframework-4.6.1

這個專案很活躍,大家可以透過作者部落格上獲取更新記錄 http://www.hardkoded.com/

部落格園裡有一篇文章 PuppeteerSharp+AngleSharp的爬蟲實戰之汽車之家資料抓取:https://www.cnblogs.com/VAllen/p/PuppeteerSharp-AngleSharp-CrawlerSamples.html 更詳細的介紹瞭如何使用PuppeterSharp。在github上還有一個PuppeterSharp的擴充套件專案:https://github.com/hlaueriksson/puppeteer-sharp-contrib

相關文章:

  • puppeteer,新款headless chrome!https://www.cnblogs.com/dh-dh/p/8490047.html

  • Puppeteer 應用容器化 https://www.cnblogs.com/weihanli/p/dockerize-puppeteer-apps.html 

原文地址:https://www.cnblogs.com/shanyou/p/10500049.html

贊(0)

分享創造快樂