Estoy usando Axios y Cheerio para raspar el sitio web de puntuación de cricket y convertir sus datos al formato JSON. Pero el problema es que los puntajes y otra información no se actualizan instantáneamente en mi respuesta API. Quiero tener una especie de funcionalidad useEffect (lo sé, es React Hook y no funciona en Express) en mi servidor express para que cada vez que cambie el puntaje en el sitio web principal, mi servidor vuelva a raspar la página y muestre datos actualizados.
axios(link).then(response => { const html = response.data const $ = cheerio.load(html) const score = [] $('.scorecard-container', html).each(function(){ const title = $(this).text() const url = link + $(this).find('a').attr('href') score.push({ id: score.length + 1, title, url }) }) res.json(score) }).catch(err => {res.send('Something went wrong'); console.log(err)})Gracias de antemano :)
ejemplo punto final expreso
get("/stats", async (req, res) => { let { data } = await axios.get(someUrl) let $ = cheerio.load(data) res.json({ title: $('title').text() }) })en reaccionar
useEffect(() => { fetch("/stats").then(r=> r.json().then(data => setStats(data))) }, [])