You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js Puppeteer爬虫:如何将数组生成JSON文件或传给PHP?

可行解决方案

你遇到的报错是因为XMLHttpRequest和File都是浏览器专属API,Node.js环境里没有这些对象,得用Node.js原生模块或第三方包实现需求,下面是两种可行方案:

方案一:生成JSON文件供PHP读取

用Node.js内置的fs模块将爬取到的数组转成JSON字符串写入文件,PHP再读取该文件即可。

Node.js代码示例:

const fs = require('fs');
// 假设provincias是你爬取到的目标数组
const provincias = [/* 你的爬取数据 */];

// 将数组转为格式化的JSON字符串并写入文件
fs.writeFileSync('./scrap_result.json', JSON.stringify(provincias, null, 2));
console.log('JSON文件生成完成');

PHP读取文件代码:

// 读取JSON文件内容
$jsonContent = file_get_contents('./scrap_result.json');
// 转换为PHP数组
$data = json_decode($jsonContent, true);
// 输出或处理数据
print_r($data);

注意:确保生成的JSON文件和PHP文件在同一目录,或指定正确的文件路径。

方案二:直接POST数据到PHP接口

用Node.js的HTTP客户端工具把数据发送到PHP接口,推荐用axios(需先安装)或Node原生http模块。

方法1:使用axios(代码更简洁)

  1. 先安装axios:
npm install axios
  1. Node.js代码示例:
const axios = require('axios');
const provincias = [/* 你的爬取数据 */];

// 发送POST请求到PHP接口
axios.post('http://localhost/your-php-file.php', provincias, {
  headers: {
    'Content-Type': 'application/json'
  }
})
.then(response => {
  console.log('PHP返回响应:', response.data);
})
.catch(error => {
  console.error('请求失败:', error.message);
});

方法2:使用Node原生http模块(无需额外安装包)

const http = require('http');
const provincias = [/* 你的爬取数据 */];
const postData = JSON.stringify(provincias);

const options = {
  hostname: 'localhost',
  port: 80,
  path: '/your-php-file.php',
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': Buffer.byteLength(postData)
  }
};

const req = http.request(options, (res) => {
  let data = '';
  res.on('data', (chunk) => {
    data += chunk;
  });
  res.on('end', () => {
    console.log('PHP返回响应:', data);
  });
});

req.on('error', (e) => {
  console.error('请求失败:', e.message);
});

// 发送请求数据
req.write(postData);
req.end();

PHP接收数据代码:

// 读取POST的JSON数据
$jsonData = file_get_contents('php://input');
// 转换为PHP数组
$data = json_decode($jsonData, true);

// 处理数据并返回确认信息
echo json_encode(['status' => 'success', 'received_data' => $data]);

内容的提问来源于stack exchange,提问作者Jose Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 04:10:30