C#使用Selenium+PhantomJS抓取數(shù)據(jù)
手頭項目需要抓取一個用js渲染出來的網(wǎng)站中的數(shù)據(jù)。使用常用的httpclient抓回來的頁面是沒有數(shù)據(jù)。上網(wǎng)百度了一下,大家推薦的方案是使用PhantomJS。PhantomJS是一個沒有界面的webkit瀏覽器,能夠和瀏覽器效果一致的使用js渲染頁面。Selenium是一個web測試框架。使用Selenium來操作PhantomJS絕配。但是網(wǎng)上的例子多是Python的。無奈,下載了python按照教程搞了一下,卡在了Selenium的導入問題上。遂放棄,還是用自己慣用的c#吧,就不信c#上沒有。經(jīng)過半個小時的折騰,搞定(python折騰了一個小時)。記錄下這篇博文,讓我等搞c#的新手能用上PhantomJS。
第一步:打開visual studio 2017 新建一個控制臺項目,打開nuget包管理器。
第二部:搜索Selenium,安裝Selenium.WebDriver。注意:如果要使用代理的話最好安裝3.0.0版本。
第三步:寫下如下圖所示的代碼。但是執(zhí)行的時候會報錯。原因是找不到PhantomJS.exe。這時候可以去下載一個,也可以繼續(xù)看第四步。
using OpenQA.Selenium; using OpenQA.Selenium.PhantomJS; using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var url = "http://www.baidu.com"; IWebDriver driver = new PhantomJSDriver(GetPhantomJSDriverService()); driver.Navigate().GoToUrl(url); Console.WriteLine(driver.PageSource); Console.Read(); } private static PhantomJSDriverService GetPhantomJSDriverService() { PhantomJSDriverService pds = PhantomJSDriverService.CreateDefaultService(); //設(shè)置代理服務(wù)器地址 //pds.Proxy = $"{ip}:{port}"; //設(shè)置代理服務(wù)器認證信息 //pds.ProxyAuthentication = GetProxyAuthorization(); return pds; } } }
第四步:打開nuget安裝Selenium.PhantomJS.WebDriver包。
第五步:運行。可以看到phantomjs.exe被自動下載了。
好了,這樣就可以開始你的數(shù)據(jù)抓取大業(yè)了。
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持我們!
欄 目:C#教程
下一篇:c#中Winform實現(xiàn)多線程異步更新UI(進度及狀態(tài)信息)
本文標題:C#使用Selenium+PhantomJS抓取數(shù)據(jù)
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/5870.html
您可能感興趣的文章
- 01-10C#使用Dispose模式實現(xiàn)手動對資源的釋放
- 01-10C#3.0使用EventLog類寫Windows事件日志的方法
- 01-10C#使用windows服務(wù)開啟應(yīng)用程序的方法
- 01-10c# ArrayList的使用方法小總結(jié)
- 01-10C#使用ADO.Net部件來訪問Access數(shù)據(jù)庫的方法
- 01-10C#使用Mutex簡單實現(xiàn)程序單實例運行的方法
- 01-10使用Nopcommerce為商城添加滿XX減XX優(yōu)惠券功能
- 01-10C#中yield用法使用說明
- 01-10C#編程和Visual Studio使用技巧(下)
- 01-10C#編程和Visual Studio使用技巧(上)


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻 器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已
隨機閱讀
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實例總結(jié)
- 04-02jquery與jsp,用jquery
- 08-05DEDE織夢data目錄下的sessions文件夾有什