简介:看到自己喜欢的在线文档,是不是总想保存下来慢慢学习。可是苦于没有现成的工具,这里我来介绍两个 JS 类库,只需要简单封装一下,从此想抓哪里抓哪里。一、使用 Phantomjs1.简单使用上面是一个完整的示例,我们来看 ...
看到自己喜欢的在线文档,是不是总想保存下来慢慢学习。可是苦于没有现成的工具,这里我来介绍两个 JS 类库,只需要简单封装一下,从此想抓哪里抓哪里。因为 open 操作会有响应时间,所以需要使用 setTimeout 来确保流程。这里需要额外补充一点,如果需要检测 UA,那么你需要这么使用:既然 Phantomjs 这么好用,为啥还要了解 Puppeteer ?提到这个问题,我们不得不来说一下 Puppeteer 强大的官方背景:Puppeteer(木偶) 英[ppt(r)],美[pptr],是 Google Chrome 团队官方的无界面 (Headless)Chrome 工具。所以不管从以后的发展还是完整性方面,Puppeteer 都是我们的首选。那么,Puppeteer 能用来干啥,有哪些功能:
说了这么多,让我们快速开始,迅速的体验一把。1.安装npm i puppeteer2.注意事项安装并不会那么顺利,因为要依赖 Chromium ,所以你可能会遇到这样的异常。 Note: When you install Puppeteer, it downloads a recent version of Chromium (~170MB Mac, ~282MB Linux, ~280MB Win) that is guaranteed to work with the API. To skip the download, see Environment variables.正确姿势: set PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1npm i puppeteer# 或者忽略依赖脚本安装 jartto"s demonpm i --save puppeteer --ignore-scripts如果不能翻墙下载,那么就手动去官网下载 Chromium 吧。当然,坑远不止这些,感兴趣的童鞋可以戳这里 Puppeteer 异常处理。3.下载核心包 npm i puppeteer-core从 1.7 版本开始发布 puppeteer-core ,他默认不会下载 Chromium 。puppeteer-core 使用已安装的浏览器 或远程浏览器。具体可以查看官网文档 puppeteer vs puppeteer-core.4.示例生成网站快照: await page.setViewport({width: 1024, height: 880});设置 cookie: executablePath: ‘chromium/Chromium.app/Contents/MacOS/Chromium’。更有趣的事情是,我们可以搜索一些关键字来生成快照,譬如: 一定要找准对应元素的 id,我们可以使用 chrome 开发者工具切换手机模式查看元素。5.相关资源学习资源总是很多,由浅入深的学习将会事半功倍,下面我稍微整理一下。阶段一:
循序渐进的开始你的学习旅程吧。三、总结 |