第一期:如何經過知曉云云函數快速實現圖片爬蟲

做者:知曉雲 - 小程序開發快人一步
來源:知曉課堂html

本文會跟你們介紹,如何在本地使用知曉云云函數 API 與 cheerio 開發一個圖片爬蟲,並使用 webpack 與 mincloud 將代碼打包並上傳部署到知曉雲。webpack

技術棧:web

  • 代碼打包工具:webpack@4.20.2
  • 部署工具:mincloud@1.0.2
  • html 解析:cheerio@1.0.0-rc.2
  • 其餘:知曉雲 Node SDK(雲函數內置)

項目文件結構:npm

快速實現圖片爬蟲1.jpeg

最終咱們會使用如下兩個命令來部署與測試
快速實現圖片爬蟲2.png小程序

1、webpack 配置

因爲使用的是 v4 的 webpack,因此只須要不多的配置就能夠了。
快速實現圖片爬蟲3.jpegsegmentfault

2、package script 配置

添加 deploy 腳本,以下:
快速實現圖片爬蟲4.jpegapp

3、入口文件

雲函數做爲一個模塊在沙箱環境中被調用執行,該模塊須要暴露出一個 main 方法,模塊代碼結果以下:
快速實現圖片爬蟲5.png函數

咱們的 webpack 入口文件須要暴露出一個函數(簽名爲:function (event, callback)),打包後就能夠生成一個給個跟上面一致的模塊文件(在 webpack.config.js 中已經定義了)。因此咱們的入口文件主要結構以下:
快速實現圖片爬蟲6.png工具

4、爬蟲

這裏分爲 4 個步驟:測試

  • 抓取網頁
  • 解析頁面,抓出全部 img 標籤中的 src
  • 將圖片下載下來
  • 將下載下來的圖片上傳到知曉雲

使用知曉雲 Node SDK 的 request 方法將網頁下載下來(不能直接使用其餘第三方 request 包):

快速實現圖片爬蟲7.png

使用 cheerio 解析 html ,抓出全部的圖片 url:

快速實現圖片爬蟲8.jpeg

下載圖片:
快速實現圖片爬蟲9.png

上傳圖片到知曉雲:
快速實現圖片爬蟲10.png

完整代碼以下:

快速實現圖片爬蟲11.jpeg

5、部署並測試

跟 npm 同樣,部署前須要先登陸,請參照文檔配置。

使用如下命令便可將雲函數部署到知曉雲。

npm run deploy

執行結果以下:
快速實現圖片爬蟲12.jpeg

使用如下的命令來測試:
快速實現圖片爬蟲13.png

執行結果以下:
快速實現圖片爬蟲14.png

執行成功後便可在知曉雲文件模塊看到抓取到的圖片

快速實現圖片爬蟲15.jpeg

關注「知曉雲」公衆號,點擊菜單欄「知曉雲」-「知曉課堂」,獲取更多開發教程。

mincloud2019.png

相關文章
相關標籤/搜索