一、配置相关环境
1、下载nodejs
网址:http://nodejs.cn/download/
注:我使用的是二进制包 64位。解压后可直接使用
2、查看node版本信息。
2.1在命令提示符中进入到nodejs目录下,然后输入 node -v。
3、安装puppeteer模块。
3.1puppeteer简单介绍
Puppeteer是什么
Puppeteer 是一个Node库, 它提供高级API,通过DevTools Protocol 来控制Chrome 或 Chromium。 Puppeteer 默认运行为headless ,但是可以配置为运行为non-headless 。
可以做什么
生成页面截图或PDF
抓取SPA 并生成预渲染内容(SSR)
参考:https://www.jianshu.com/p/679f07ba474b
3.2puppeteer安装(由于本机已经安装过puppeteer就不进行截图)
1、在windows环境下安装,在命令提示符中,输入命令:npm i --save puppeteer --ignore-scripts,即可安装成功。
参考:https://jingyan.baidu.com/article/d5c4b52ba71fa0da560dc51d.html
4、chromeium可以下载对应的chromium,一定要和本机的chrome浏览器版本相对应,也可以直接使用本机的chrome浏览器。
二、以抓取京东为例。
const puppeteer = require('puppeteer');
(async ()=> {
// chrome地址
const chromePath=process.argv[2]
//传进的将要解析的url网址
const address=process.argv[3];
const browser = await puppeteer.launch({ignoreHTTPSErrors: true,headless: false,executablePath:chromePath,timeout:60000,args: ['--no-sandbox', '--disable-setuid-sandbox']});
// 打开新页面
const page = await browser.newPage();
//等待时间
var time=25000;
// 访问
await page.goto(request_url, {waitUntil: 'domcontentloaded'}).catch(err => console.log(err));
await page.waitFor(address);
let content = await page.content()
console.log(content);
await browser.close();
})();
执行命令:在cmd中执行 : nodejs路径 puppeteer路径 chrome浏览器路径 http://www.baidu.com