Puppeteer 相关介绍与安装不过多介绍,可通过以下链接进行学习
一、Puppeteer
开源地址
英文文档
中文社区
二、爬取动态网页
1. 需求
首先,了解下我们的需求: 爬取zoomcharts 文档中
Net Chart 目录下所有访问连接对应的页面,并保存到本地
2. 研究 ZoomCharts 文档页面结构
首先,我们得研究透 ZoomCharts 页面如何加载,以及左侧导航的 DOM 树结构,才好进行下一步操作
页面首次加载

页面首次加载,左侧导航第一个目录
Introduction 高亮,从控制台可看出,该元素增加了
active 类,同时
li[data-section="net-chart"] 节点下只有一个元素节点
a点击
Net Chart 目录
点击
Net Chart 目录,
Net Chart 目录高亮,下拉显示子目录,查看控制台,其元素节点增加
active 类,并增加
ul 子元素节点, 此时,第一个子目录节点也只有一个子元素节点
a结论
不难发现, 左侧目录是动态生成的,而不是静态写死的,只有点击父级目录,其子目录才会生成显示,同时,父级目录元素上的
drop 类表明存在子级目录3. 编写主程序
通过上面分析,得出大概流程如下
从上到下,遍历
Net Chart 目录的 DOM 树,当找到
a.drop 的元素节点,模拟鼠标点击事件
click ,生成子目录节点找到
Net Chart 目录下所有的
a 链接,生成一个数组遍历数组,访问每一个子目录页面,保存页面的 html 文件到本地
接下来实现每个具体流程
项目初始化
安装
puppeteer









