一坡疼、配置相關(guān)環(huán)境
1、下載nodejs
??網(wǎng)址:http://nodejs.cn/download/
??注:我使用的是二進(jìn)制包 64位衣陶。解壓后可直接使用
nodejs.png
2柄瑰、查看node版本信息。
??2.1在命令提示符中進(jìn)入到nodejs目錄下剪况,然后輸入 node -v教沾。
版本信息.png
3、安裝puppeteer模塊译断。
??3.1puppeteer簡單介紹
??Puppeteer是什么
??Puppeteer 是一個(gè)Node庫授翻, 它提供高級(jí)API,通過DevTools Protocol 來控制Chrome 或 Chromium镐作。 Puppeteer 默認(rèn)運(yùn)行為headless 藏姐,但是可以配置為運(yùn)行為non-headless 隆箩。
??可以做什么
??生成頁面截圖或PDF
??抓取SPA 并生成預(yù)渲染內(nèi)容(SSR)
??參考:http://www.reibang.com/p/679f07ba474b
??3.2puppeteer安裝(由于本機(jī)已經(jīng)安裝過puppeteer就不進(jìn)行截圖)
?? 1该贾、在windows環(huán)境下安裝,在命令提示符中捌臊,輸入命令:npm i --save puppeteer --ignore-scripts杨蛋,即可安裝成功。
??參考:https://jingyan.baidu.com/article/d5c4b52ba71fa0da560dc51d.html
4理澎、chromeium可以下載對(duì)應(yīng)的chromium逞力,一定要和本機(jī)的chrome瀏覽器版本相對(duì)應(yīng),也可以直接使用本機(jī)的chrome瀏覽器糠爬。
二寇荧、以抓取京東為例。
const puppeteer = require('puppeteer');
(async ()=> {
// chrome地址
const chromePath=process.argv[2]
//傳進(jìn)的將要解析的url網(wǎng)址
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();
//等待時(shí)間
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();
})();
執(zhí)行命令:在cmd中執(zhí)行 : nodejs路徑 puppeteer路徑 chrome瀏覽器路徑 http://www.baidu.com