學習Node.js(實踐一個爬蟲)

  • 成熟:成熟包括語言本身已經成熟,還有Framework和ecosystem也很龐大。Node.js的絕大多數framework都很新,有的API一直在變,有的感覺已經不在維護,總之沒有一個像Django那種百足之蟲感覺的framework。

  • 接下來看看如何利用Node.js寫爬蟲

    這個爬蟲主要就是獲取慕課網的課程信息,並把獲得的信息存儲到一個文件中,其中要用到cheerio庫,它可以讓我們方便的操作HTML,就像是用jQ一樣

    開始前,記得

    npm install cheerio

    為了能夠併發的進行爬取,用到了Promise對象

    學習Node.js(實踐一個爬蟲)

    在慕課網中,每個課程都有一個ID,我們事先要把想要獲取課程的ID寫到一個數組中,而且每個課程的地址都是一個相同的地址加上ID,所以我們只要把地址和ID拼接起來就是課程的地址

    學習Node.js(實踐一個爬蟲)

    為了使獲取每個課程內容時併發執行,要使用Promise中的all方法

    學習Node.js(實踐一個爬蟲)

    在then方法中,pages是每個課程的HTML頁面,我們還得從中提取出我們需要的信息,需要使用下面的函數

    學習Node.js(實踐一個爬蟲)

    注意:在上面中將課程的學習人數設置為了0是因為學習課程人數是用Ajax動態獲取,所以我在後面寫了方法專門獲取學習課程人數,其中用到的Trim()方法是去除文本中的空格

    獲取學習課程的人數:

    學習Node.js(實踐一個爬蟲)

    這樣就將想獲取課程的學習人數都添加到了courseMembers數組中,在最後將學習課程的人數在賦值給相對應的課程

    學習Node.js(實踐一個爬蟲)

    我們獲取到了數據,就要把它按照一定的格式存到一個文件中

    學習Node.js(實踐一個爬蟲)

    最後獲取到的數據

    學習Node.js(實踐一個爬蟲)

    歡迎大家關注頭條號:熱衷python和前端

    如果有需要源碼的同學就留言或者私聊我吧


    分享到:


    相關文章: