nodejs + koa2 實現爬蟲

可可可淑女發表於2019-02-16

superagent 官方文件
爬蟲原始碼實現(github地址)

安裝koa腳手架

注意koa2只支援node版本 v7+,請確保版本足夠

npm i koa-generator -g  //安裝全部腳手架
koa2 projectName //初始化專案目錄
cd projectName
npm i //預設攜帶package.json檔案,需要我們自行安裝node_modules包
npm start  //啟動專案(預設是3000埠號)

需要注意的是,每次執行npm start命令, koa2預設會幫助我們執行一次入口檔案,如果需要動態監測檔案改變,開發環境建議使用nodemon進行實時監測重新整理. (npm i nodemon -g), 這裡需要更改 package.json檔案中的 script屬性,改為"scripts": { "start": "nodemon bin/www"} 即可,

superagent請求資料

用法如下:

npm i superagent -S
    superagent
        .get(url) 
        .set({  //設定請求頭
            "Connection":"keep-alive",
        })
        .end((err,res) => {   //錯誤優先
            if(err){
                console.log(err);
                return ;
            }
            ctx.body = res.text  // 請求到的html在text屬性中
        }

cheerio使用

文件可以參考這裡 或者 這裡
cheerio是為沒有window物件的執行環境專門定製的DOM操作庫. 是jquery的核心實現.(並不是基於window物件的)

const cheerio = require(`cheerio`);
//superagent請求到資料之後, 執行
const $ = cheerio.load(res.text);
...

常用Api :
addClass(className) : 給標籤新增class名,方便抓取資料
text() : 獲取標籤的文字內容
find(`img`) : 查詢某型別的標籤或者class
toArray : 可以把一個偽陣列變成陣列
each : 迴圈遍歷得到的陣列,引數分別是(index,element);

具體實現以及cheerio使用,可以參考GitHub原始碼. 如果你覺得原始碼對你有幫助的話,記得點個Star噢~

相關文章