通常的http請求庫只可以抓取到網頁的靜態內容,若是想抓取經過js動態生成的內容能夠使用沒有gui的browser庫,以前許多人會使用phantomjs做爲headless browser,不過如今phantomjs團隊已經宣佈中止更新工做,須要一款替代庫,因而這裏就採用了headless chrome來進行動態網頁內容抓取。php
爬蟲實現以下:html
1.在.net core項目中引用以下nuget包linux
Selenium.WebDriver
Selenium.WebDriver.ChromeDriver
注意:引用Selenium.WebDriver.ChromeDriver後,會在代碼目錄中copy出chromedriver.exe文件,exe文件只能運行與windows平臺下,因此咱們須要去網站(http://chromedriver.storage.googleapis.com/index.html)下載當前最新的chromedriver程序linux版,並將程序添加到項目中,屬性設置爲複製到輸出目錄。這樣導出的程序才能夠在linux和windwos平臺下都正常運行。chrome
注意2:爬蟲的宿主服務器中須要安裝和chromedriver一致版本的chrome版本(兩個都安裝最新版就能夠)windows
2.爬蟲代碼api
class Program { static void Main(string[] args) { ChromeOptions op = new ChromeOptions(); op.AddArguments("--headless");//開啓無gui模式 op.AddArguments("--no-sandbox");//停用沙箱以在Linux中正常運行 ChromeDriver cd = new ChromeDriver(Environment.CurrentDirectory, op,TimeSpan.FromSeconds(180)); cd.Navigate().GoToUrl("http://chart.icaile.com/sd11x5.php"); string text = cd.FindElementById("fixedtable").Text; cd.Quit(); Console.WriteLine(text); Console.Read(); } }