Back to blocks
动态数据抓取指南
4.0
en技术教程数据抓取动态数据网页爬虫
Prompt
build a dynamic data scraper.
Résultat Généré
import React, { useState, useEffect } from 'react'; import './App.css'; const App = () => { const [data, setData] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { const fetchData = async () => { try { const response = await fetch('https://api.example.com/data'); if (!response.ok) { throw new Error('Network response was not ok'); } const result = await response.json(); setData(result); } catch (error) { setError(error); } finally { setLoading(false); } }; fetchData(); }, []); if (loading) return <div className="flex justify-center items-center h-screen">Loading...</div>; if (error) return <div className="flex justify-center items-center h-screen">Error: {error.message}</div>; return ( <div className="App"> <header className="bg-blue-600 text-white p-4"> <h1 className="text-2xl font-bold">Dynamic Data Scraper</h1> </header> <main className="p-4"> <section className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"> {data.map((item, index) => ( <div key={index} className="bg-white shadow-lg rounded-lg p-4"> <h2 className="text-xl font-semibold">{item.title}</h2> <p className="text-gray-700">{item.description}</p> <img src={item.image} alt={item.title} className="w-full h-48 object-cover mt-4" /> </div> ))} </section> </main> <footer className="bg-gray-800 text-white p-4 mt-8"> <p className="text-center">© 2025 Dynamic Data Scraper. All rights reserved.</p> </footer> </div> ); }; export default App;
