TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码

Node使用Puppeteer监听并打印网页的接口请求

2025-06-07
/
0 评论
/
28 阅读
/
正在检测是否收录...
06/07

1. 安装Puppeteer

首先,确保你已经安装了Puppeteer。如果未安装,可以通过npm安装:
bash npm install puppeteer

2. 编写Puppeteer脚本

我们将编写一个脚本来启动Puppeteer,导航到一个页面,监听网络请求,并从这些请求中提取信息来生成文章。

2.1 创建Puppeteer脚本 (fetchDataAndGenerateArticle.js)

```javascript
const puppeteer = require('puppeteer');
const fs = require('fs');
const path = require('path');

async function fetchDataAndGenerateArticle(url) {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(url, { waitUntil: 'networkidle' }); // 等待页面加载完毕并网络空闲

// 监听并记录所有网络请求的响应
page.on('request', (request) => {
    console.log(`${request.method} ${request.url}`);
    if (request.response()) {
        const responseData = await request.response().text();
        console.log(responseData); // 打印响应内容(可选)
    }
});

// 关闭浏览器(在生产环境中请谨慎使用)
await browser.close();

}

// 调用函数,指定URL(替换为你想抓取数据的网页)
fetchDataAndGenerateArticle('https://example.com');
```

3. 解析和生成文章内容

generateMarkdownArticle)

javascript function generateMarkdownArticle(data) { const title = data.title || 'No Title Provided'; const keywords = data.keywords ? `**Keywords**: ${data.keywords}` : ''; const description = data.description || 'No Description Provided'; const content = data.content || 'No Content Provided'; // 假设内容长度足够1000字左右(实际应用中需适当裁剪或填充) const mdContent = `# ${title} ${keywords} ${description} \n\n${content}`; // 使用\n\n来创建新段落 return mdContent; }

4. 整合并运行脚本

最后,整合上述功能,运行Puppeteer脚本并生成Markdown文件。
```javascript
async function main() {
const url = 'https://example.com'; // 目标URL
const browser = await puppeteer.launch(); // 启动浏览器实例
const page = await browser.newPage(); // 创建新页面实例
await page.goto(url, { waitUntil: 'networkidle' }); // 导航到目标页面并等待加载完成
await page.on('request', (request) => { // 监听网络请求事件并处理数据提取(简化处理)
if (request.url.includes('title')) { // 假设响应包含特定字符串表示标题信息等…实际应用需具体分析URL和响应内容
data = request.response().json(); // 假设返回的是JSON数据,实际中根据响应类型调整处理方式。这里只作为示例。
fs.writeFileSync(path.resolve(__dirname, 'article.md'), generateMarkdownArticle(data)); // 生成并保存Markdown文件。这里使用fs同步方法写入,实际应用中考虑异步方法或错误处理。 } }); await browser.close(); // 关闭浏览器实例 } main().catch(console.error); // 处理异步错误

朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/29036/(转载时请注明本文出处及文章链接)

评论 (0)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. 强强强
    2025-04-07
  2. jesse
    2025-01-16
  3. sowxkkxwwk
    2024-11-20
  4. zpzscldkea
    2024-11-20
  5. bruvoaaiju
    2024-11-14

标签云