借助 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();
})();
原文:https://www.cnblogs.com/baixiaoxiao/p/10573459.html