技术栈
cheerio: 将抓取的html直接转化为jquery对象,可以直接对获取信息进行DOM操作。
puppeteer: Puppeteer是谷歌官方出品的一个通过DevTools协议控制headless Chrome的Node库。可以通过Puppeteer的提供的api直接控制Chrome模拟大部分用户操作来进行UI Test或者作为爬虫访问页面来收集数据。
https://nodejs.org/dist/v10.16.2/node-v10.16.2.pkg
https://github.com/GoogleChrome/puppeteer
npm i puppeteer
default.js
const path = require('path')
module.exports = {
screenshot: path.resolve(__dirname, '../screenshot')
}
crawler.js
const puppeteer = require('puppeteer');
const {screenshot} = require('./config/default');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('http://news.baidu.com/');
console.log('Date:', Date.now()); //Date
await page.screenshot({
path: ${screenshot}/${Date.now()}.png
});
await page.pdf({
path: ${screenshot}/${Date.now()}.pdf
, format: 'A4'
});
await browser.close();
})();
网友评论