作者:知曉雲 - 小程序開發快人一步
來源:知曉課堂
本文會跟大家介紹,如何在本地使用知曉云云函數 API 與 cheerio 開發一個圖片爬蟲,並使用 webpack 與 mincloud 將代碼打包並上傳部署到知曉雲。
技術棧:
- 代碼打包工具:[email protected]
- 部署工具:[email protected]
- html 解析:[email protected]
- 其他:知曉雲 Node SDK(雲函數內置)
項目文件結構:
最終我們會使用以下兩個命令來部署與測試
一、webpack 配置
由於使用的是 v4 的 webpack,所以只需要很少的配置就可以了。
二、package script 配置
添加 deploy 腳本,如下:
三、入口文件
雲函數作爲一個模塊在沙箱環境中被調用執行,該模塊需要暴露出一個 main 方法,模塊代碼結果如下:
我們的 webpack 入口文件需要暴露出一個函數(簽名爲:function (event, callback)),打包後就可以生成一個給個跟上面一致的模塊文件(在 webpack.config.js 中已經定義了)。所以我們的入口文件主要結構如下:
四、爬蟲
這裏分爲 4 個步驟:
- 抓取網頁
- 解析頁面,抓出所有 img 標籤中的 src
- 將圖片下載下來
- 將下載下來的圖片上傳到知曉雲
使用知曉雲 Node SDK 的 request 方法將網頁下載下來(不能直接使用其他第三方 request 包):
使用 cheerio 解析 html ,抓出所有的圖片 url:
下載圖片:
上傳圖片到知曉雲:
完整代碼如下:
五、部署並測試
跟 npm 一樣,部署前需要先登錄,請參照文檔配置。
使用以下命令即可將雲函數部署到知曉雲。
npm run deploy
執行結果如下:
使用以下的命令來測試:
執行結果如下:
執行成功後即可在知曉雲文件模塊看到抓取到的圖片
關注「知曉雲」公衆號,點擊菜單欄「知曉雲」-「知曉課堂」,獲取更多開發教程。