Creé una aplicación de reacción que da el siguiente resultado como HTML:
import './App.css'; import Home from './Home'; function App() { return ( <div className="Apps"> <strong>"root1"</strong> <div className="content"> <p>"root"</p> </div> </div> ); } export default App; Mi objetivo aquí es básicamente recuperar "root1" de la etiqueta <strong> en la clase Aplicaciones. He escrito el siguiente código pero no recupera los datos:
const puppeteer = require("puppeteer") const fs = require("fs/promises") async function start() { const browser = await puppeteer.launch() const page = await browser.newPage() await page.goto("https://token-pric-213.herokuapp.com/") const names = await page.evaluate(() => { return Array.from(document.querySelectorAll(".Apps strong"), els => els.map(el => el.textContent)) }) await fs.writeFile("names.txt", names.join("\r\n")) await browser.close() } start()Cuando ejecuto el script, se crea un nuevo archivo de texto pero está vacío en lugar de mostrar "root1". ¿Alguien me puede ayudar? ¡Gracias por tu tiempo!
@ggorlen me dio la respuesta correcta, debería ser así:
const puppeteer = require("puppeteer") const fs = require("fs/promises") async function start() { const browser = await puppeteer.launch() const page = await browser.newPage() await page.goto("url") const names = await page.evaluate(() => { return Array.from(document.querySelectorAll(".Apps strong"), el => el.textContent) }) await fs.writeFile("names.txt", names.join("\r\n")) await browser.close() } start()¡Gracias!