使用 BrightData、React.js 和 Node.js 抓取不可抓取的 Amazon 数据集
我建造了什么
该项目使用 Brightdata 从亚马逊抓取数据并返回页面上的数据输出。您可以搜索任何您想要的内容,并且只要您搜索的内容可以在亚马逊上找到,它就会加载到页面上。
演示
该项目使用两个不同的 GitHub repo。一个用于前端,另一个用于后端。

如何使用 Bright Data
该项目是使用明亮的数据构建的。
我使用 Brightdata Scraping 浏览器从亚马逊检索数据集。
import 'dotenv/config'
import { Router } from 'express';
import puppeteer from 'puppeteer-core';
import process from 'node:process';
const router = Router();
// Scraping logic using Puppeteer and BrightData
const scrapeData = async (searchTerm) => {
const BROWSER_WS = process.env.BROWSER_WS; // set your bright data proxy credential here
const URL = "https://www.amazon.com";
const browser = await puppeteer.connect({
browserWSEndpoint: BROWSER_WS,
});
// ... some code here
await browser.close();
return products;
};
// Define the API route for scraping
router.get('/scrape', async (req, res) => {
// ... some code here
}
});
export default router;Brightdata 抓取浏览器使用 puppeteer-core 抓取亚马逊数据并将内容作为 json 响应返回。
我使用 express.js 为前端应用程序创建了一个 api 端点和服务器,它是一个 React 和 vite.js 设置。
import express from 'express';
import scrapeRouter from './index.js'; // Import the logic from index.js
import cors from 'cors';
const app = express();
// allow all origin
app.use(cors());
// Use the scrapeRouter for /api routes
app.use('/api', scrapeRouter);
// Set the port
const PORT = 4040;
// Start the server
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});Tailwindcss 用于保存,React Icons 用于图标。其他堆栈如下所示。
部署
后端 Express 应用单独部署
使用的堆栈
DEV 挑战现已开始!

查看所有参与方式、证明您的技能并赢取奖品。
访问挑战中心