借助 puppeteer 库实现爬虫,puppeteer 提供了高级 api 接口来操作 chrome 来
npm install puppeteer --save-dev // 下载到开发依赖----很大
业务逻辑:
1. 打开浏览器网页
2. 新建标签页
3. 跳转到指定网址
4. 开始爬取数据
5. 关闭浏览器
index.js
-
const puppeteer = require('puppeteer'); (async () => { // 1. 打开浏览器 const browser = await puppeteer.launch({ headless: true; // 无头浏览器,不显示浏览器界面 }); // 2. 新建标签页 const page = await browser.newPage(); // 3. 跳转到指定网页 await page.goto('https://豆瓣.com', { waitUntil:['load'] }); // page.type() // 模拟用户登录 // 4. 爬取数据 //await page.screenshot({path: 'example.png'}); await page.evaluate(()=>{ // 对页面进行 DOM 操作 const $lis = $('#nowplaying .list>li'); let result = []; for(var i=0; i<$lis.length; i++){ //获取了单个li元素 const $li = $($lis[i]); //海报图 const image = $li.find('.poster img').attr('src'); //电影标题 const title = $li.find('.stitle a').text().trim(); //电影评分 const rating = $li.find('.subject-rate').text(); result.push({image, title, rating}); }; return result; }); // 5. 关闭浏览器 await browser.close(); })();