利用Puppeteer-Har记录与分析网页抓取中的性能数据

引言

在现代网页抓取中,性能数据的记录与分析是优化抓取效率和质量的重要环节。本文将介绍如何利用Puppeteer-Har工具记录与分析网页抓取中的性能数据,并通过实例展示如何实现这一过程。

Puppeteer-Har简介

Puppeteer是一个Node.js库,提供了一个高级API来控制Chrome或Chromium浏览器。Har(HTTP Archive)文件格式用于记录网页加载过程中的所有HTTP请求和响应。Puppeteer-Har结合了这两者的优势,使得开发者可以轻松地记录和分析网页抓取中的性能数据。

环境准备

在开始之前,请确保已安装Node.js和npm。然后,安装Puppeteer和puppeteer-har:

bash 复制代码
npm install puppeteer puppeteer-har
使用代理IP技术

为了避免IP封禁,我们将使用代理IP技术。以下代码示例中使用了爬虫代理的域名、端口、用户名和密码。

实例代码

以下是一个完整的代码示例,展示了如何使用Puppeteer-Har记录和分析今日头条(https://www.toutiao.com)的性能数据,并进行数据归类和存储。

javascript 复制代码
const puppeteer = require('puppeteer');
const { PuppeteerHar } = require('puppeteer-har');

(async () => {
  // 启动浏览器并设置代理 亿牛云爬虫代理www.16yun.cn
  const browser = await puppeteer.launch({
    args: [
      '--proxy-server=http://代理域名:代理端口'
    ]
  });
  const page = await browser.newPage();

  // 设置代理认证
  await page.authenticate({
    username: '代理用户名',
    password: '代理密码'
  });

  // 创建HAR记录器
  const har = new PuppeteerHar(page);

  // 开始记录HAR文件
  await har.start({ path: 'results.har' });

  // 导航到目标页面
  await page.goto('https://www.toutiao.com');

  // 等待页面加载完成
  await page.waitForTimeout(5000);

  // 停止记录HAR文件
  await har.stop();

  // 关闭浏览器
  await browser.close();

  console.log('HAR文件已生成');
})();
数据分析与存储

生成的HAR文件包含了所有HTTP请求和响应的数据。我们可以使用各种工具(如Chrome DevTools或在线HAR查看器)来分析这些数据。以下是一个简单的示例,展示如何解析HAR文件并提取新闻要点和评论。

javascript 复制代码
const fs = require('fs');

// 读取HAR文件
const harData = JSON.parse(fs.readFileSync('results.har', 'utf8'));

// 提取新闻要点和评论
const entries = harData.log.entries;
const newsData = entries.filter(entry => entry.request.url.includes('toutiao.com'));

newsData.forEach(entry => {
  console.log(`URL: ${entry.request.url}`);
  console.log(`Status: ${entry.response.status}`);
  console.log(`Response Time: ${entry.time}ms`);
  console.log('--------------------------------');
});

// 将数据存储到文件
fs.writeFileSync('newsData.json', JSON.stringify(newsData, null, 2), 'utf8');
console.log('新闻数据已存储到newsData.json');
结论

通过本文的介绍,我们了解了如何利用Puppeteer-Har记录与分析网页抓取中的性能数据,并通过实例代码展示了如何实现这一过程。希望本文能为您的网页抓取工作提供有价值的参考。

相关推荐
lay_liu1 分钟前
Node.JS 版本管理工具 Fnm 安装及配置(Windows)
windows·node.js
arvin_xiaoting7 小时前
OpenClaw学习总结_I_核心架构_8:SessionPruning详解
前端·chrome·学习·系统架构·ai agent·openclaw·sessionpruning
Blurpath住宅代理10 小时前
IP类型深度解析:住宅IP、机房IP、原生IP的本质区别与检测指南
静态ip·代理·代理ip·住宅ip·住宅代理
kyriewen1113 小时前
异步编程:从“回调地狱”到“async/await”的救赎之路
开发语言·前端·javascript·chrome·typescript·ecmascript·html5
工頁光軍15 小时前
Node.js 操作 Milvus 完整实战案例
node.js·milvus
Java_ESS15 小时前
MacBook Pro Intel 芯片版:Node.js + Claude Code + OpenCode 完全安装指南
node.js·ai编程
ljh57464911918 小时前
Linux find命令
linux·运维·chrome
En^_^Joy20 小时前
Node.js开发指南:模块、npm与Webpack
webpack·npm·node.js
zhensherlock21 小时前
Protocol Launcher 系列:Microsoft Edge 浏览器唤起的优雅方案
javascript·chrome·microsoft·typescript·edge·github·edge浏览器
Gary jie21 小时前
OpenClaw启动日志详细分析
前端·chrome