使用 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 挑战现已开始!

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