cefsharp是一個基于Chromium Embedded Framework(CEF)的.NET包,它提供了一個用于內嵌Web瀏覽器的控件。在使用cefsharp時,我們可以通過代碼輕松地抓取Web頁面中的json數據,具體方法如下。
//創建一個ChromiumWebBrowser對象,載入待抓取的Web頁面 ChromiumWebBrowser browser = new ChromiumWebBrowser("http://www.example.com"); //當Web頁面完成加載后,會觸發該事件 browser.LoadingStateChanged += (sender, args) =>{ if (args.IsLoading == false) { //使用JavaScript腳本,獲取Web頁面中的json數據 string jsScript = "var jsonData = null; try {jsonData = JSON.parse(document.body.innerText);} catch(e) {};"; browser.GetMainFrame().ExecuteJavaScriptAsync(jsScript).ContinueWith(taskCef =>{ //獲取返回結果 var response = taskCef.Result; //從返回結果中提取json數據 string jsonData = response.Success ? response.Result.ToString() : null; //使用Newtonsoft.Json庫解析json數據 if (!string.IsNullOrEmpty(jsonData)) { JObject obj = JObject.Parse(jsonData); //解析json數據 Console.WriteLine(obj.ToString()); //將解析后的json數據輸出 } }); } };
上述代碼簡單地創建了一個ChromiumWebBrowser對象,并載入了一個Web頁面。接著,當Web頁面完成加載后,我們通過JavaScript腳本獲取了Web頁面中的json數據。最后,我們使用Newtonsoft.Json庫對json數據進行解析,并將解析后的結果輸出到控制臺。