作者:知晓云 - 小程序开发快人一步
来源:知晓课堂

本文会跟大家介绍,如何在本地使用知晓云云函数 API 与 cheerio 开发一个图片爬虫,并使用 webpack 与 mincloud 将代码打包并上传部署到知晓云。

技术栈:

  • 代码打包工具:webpack@4.20.2
  • 部署工具:mincloud@1.0.2
  • html 解析:cheerio@1.0.0-rc.2
  • 其他:知晓云 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

执行结果如下:

使用以下的命令来测试:

执行结果如下:

执行成功后即可在知晓云文件模块看到抓取到的图片

关注「知晓云」公众号,点击菜单栏「知晓云」-「知晓课堂」,获取更多开发教程。

第一期:如何通过知晓云云函数快速实现图片爬虫相关推荐

  1. 用云函数快速实现图片爬虫

    本文会跟大家介绍,如何在本地使用知晓云云函数 API 与 cheerio 开发一个图片爬虫,并使用 webpack 与 mincloud 将代码打包并上传部署到知晓云. 技术栈: 代码打包工具:web ...

  2. 知晓云 php,用云函数快速实现图片爬虫

    本文会跟大家介绍,如何在本地使用知晓云云函数 API 与 cheerio 开发一个图片爬虫,并使用 webpack 与 mincloud 将代码打包并上传部署到知晓云. 技术栈: 项目文件结构: 最终 ...

  3. excel多列多行堆叠成多列一行_「Excel技巧」如何利用indirect函数快速将一列转为多行多列排版...

    HI,大家好哈. 前几天我们有聊了如何将多行多列转一列的话题,今天就顺势来聊聊如何将一列转多行多列. 因为,一份表格,如果里面只有一列,不过有一百多行,甚至几百行, 这样子排版, 一方面,不够一目了然 ...

  4. sorted()函数快速实现字典输出

    sorted()函数快速实现字典输出 s=input('x,y,z=') x,y,z=s.split(',')#序列解包 x,y,z=sorted([x,y,z])#序列解包 print(x,y,z) ...

  5. 利用 opencv 中的 cv.Canny 函数快速进行图像边缘检测

    一. 算法原理: 可参考:https://www.cnblogs.com/wojianxin/p/12533526.html https://www.jianshu.com/p/ff4c1a6a68d ...

  6. 小福利,采用excel函数制作大屏可视化,用sumifs函数快速统计汇总数据,锁行锁列以及锁列不锁行

    小福利,采用excel函数制作大屏可视化,用sumifs函数快速统计汇总数据,锁行锁列以及锁列不锁行 源数据如下图所示 第一步处理源数据的效果是下图 其中根据年份变化,求总订单量.总销量.总销售额,只 ...

  7. iOS中使用c函数快速获取一个目录所占的空间大小

    在编写iOS应用时,我们都会大量把服务器的接口调用数据或者图片数据进行缓存,为了更好的使用体验,有时候我们也会把各种缓存的数据所占的空间大小告诉用户,提供给用户参考,并让用户可以手动清除缓存数据,就像 ...

  8. find函数 c++语言,【C++】使用find函数快速定位元素

    当有了STL,你还在用遍历的土方法定位元素吗? 今天就来介绍一下,如何使用algorithm库里的find函数快速定位数组或向量中的元素. 首先当然要包含头文件: #include 它的基本语法是这样 ...

  9. glob php,php使用glob函数快速查询指定目录文件的方法

    本文实例讲述了php使用glob函数快速查询指定目录文件的方法.分享给大家供大家参考.具体如下: php搜索当前目录所有文件,代码如下: $array = glob('*.*'); print_r($ ...

最新文章

  1. 何凯明团队又出新论文!联合北大、上交用ViT做迁移学习,效果惊人!
  2. go标准库的学习-time
  3. PC问题-该虚拟机似乎正在使用中
  4. noj Nightmare
  5. nginx服务器的文件大小的限制解决方法
  6. 深入async/await知多少
  7. jsp:include
  8. 射线检测(Summary)
  9. PHP递归遍历数组 不破坏数据结构 替换字符
  10. 图像局部特征(九)--斑点检测LOG算子
  11. (day 44 - 滑动窗口 ) 剑指 Offer 53 - II. 0~n-1中缺失的数字
  12. Java虚拟机——虚拟机类的加载机制
  13. 因循守旧最好:都是CPU架构,为什么你叫sw_64,而不是sw64?多别扭啊
  14. 8848Android 版本,【8848钛金手机M5评测】拍照配置保持Android阵容顶配堆积_8848 钛金手机M5_手机评测-中关村在线...
  15. ai作文批改_有道词典上线AI作文批改功能,可自动批改雅思、四六级作文
  16. 数学建模与数学实验4.4习题2
  17. Acer 4750 安装黑苹果_黑苹果系统安装教程之驱动篇
  18. 关于WORD提示“Word无法创建工作文件,请检查临时环境变量”问题的解决办法
  19. 北京铁路安检全面升级 四大站特警持枪巡逻
  20. 小程序图表wx-chart

热门文章

  1. Vue使用successful实现全屏
  2. github电脑壁纸_小创意--- C#设置电脑壁纸
  3. 8项技能9种武器 打造企业增长黑客
  4. word2vec原理分析与代码公式详解
  5. 用python画雪人-pygame画雪人_函数与图形示例.py
  6. 信号完整性相关基础知识
  7. 一纸红笺清花泪,半世琉璃山海盟:QQ伤感日志
  8. linux下如何查看oracle状态,[oracle] linux oracle rac状态查询
  9. ES6 - 不改变原数组的方法
  10. 华为Mate40、华为Mate40 Pro、华为Mate40 Pro+华为Mate40 RS 的区别