抓取糗百热门内容, 可以自定义配置抓取页面数量和内容类型
如果觉得这是个好玩的东西, 欢迎你的 Star , (^o^)/
使用 Promise 和一些 ES6 常用语法完成, 具体可看代码, 后面也有介绍.
- 安装 node 环境
- git clone 或下载 zip 压缩包解压
- 项目根目录打开 Terminal 终端
- 输入
npm install
, 安装依赖模块 - 输入
node app.js
, 启动项目 - 在
content/qiubai.json
查看抓取到的内容
项目根目录的 config.js
可配置抓取内容
/**
* [page description]
* @type {String}
* 设置需要抓取的页数
* 最多只能设置 35 页
*/
const page = '2'
/**
* [getContent description]
* @type {String}
* 8hr - 8 小时热门
* 24hr - 24 小时热门
*/
const getContent = '8hr'
- cheerio 服务端的 jQuery, 操作页面结构用
- axios 封装 Ajax API 的插件, Promise 写法
- fs Nodejs 内置模块, 操作本地文件
- 分析 HTML 的结构, 提取出页面 url 与页码之间的关系.
- 使用 axios 获取页面 HTML 代码.
- 使用 cheerio 处理得到的数据, 根据第 1 步分析的规则抽取需要的数据.(这时只能单页抓取)
- 用 Promise 控制异步数据写入状态
- 每个 appendFile 都封装成 Promise 实例, 当第 1 页全部写入完毕, 执行 Promise.all(), 根据规则变更请求 url 地址.
- 模块化的思想, page 数值和 url 类型, 都在
config.js
里面配置, 使用时引入.