Soy nuevo en el raspado, así que vi muchos videos y traté de entender algunos de ellos. Así que estoy extrayendo respuestas de Stckoverflow al navegar por todas las páginas que tienen las mismas palabras clave. Funcionó con las capturas de pantalla, pero lo que realmente necesito son datos en una matriz o archivo json. esta es mi función:
const getAnswerFromQuestion = async (website, query, page) => { console.log("Website", website); await page.goto(website, ["load", "domcontentloaded", "networkidle0"]); const popUp = (await page.$x("//button[@title='Dismiss']"))[0]; if (popUp) await popUp.click(); const generateId = shortid.generate(); const screenshotPath = `${generateId}.png`; const acceptedAnswer = await page.$(".accepted-answer"); const { data } = await axios.get(website); const $ = cheerio.load(data); const acceptedAnswer2 = $('.accepted-answer'); const answers = []; acceptedAnswer2.find('.answercell.post-layout--right').each((i, element) => { const $element = $(element); const answer = {}; answer.answerer = $element.find('.user-details > a').text(); answer.content = $element.find('.s-prose.js-post-body').text(); answers.push(answer); console.log(answers); }); if (!acceptedAnswer) return; const pathToSaveScreenshot = `/answers/${query}/`; await createDir(pathToSaveScreenshot); await acceptedAnswer.screenshot({ path: `.${pathToSaveScreenshot}${screenshotPath}`, }); }; Estoy tratando de obtener el nombre de usuario de la respuesta y el contenido de la respuesta. Funciona, pero agrega los datos de la última respuesta de la última navegación del sitio en la matriz de answers .