Estoy buscando obtener la lista de canciones en una página web bajo un género en particular. En mi código, estoy usando titiritero para seleccionar una opción de filtro que debería cambiar los datos contenidos en los elementos donde aparece la lista de canciones. Al ejecutar mi código, la página web muestra el género recién seleccionado pero no actualiza la lista de canciones. page.reload() pero eso me llevó de vuelta a la página web predeterminada antes de hacer clic en los filtros.
EDITAR: Para proporcionar más detalles, estoy tratando de raspar genio.com para obtener una lista de todas las canciones de rap. He creado un trabajo que usa subprocesos, pero solo funciona a veces y he intentado reorganizar el código varias veces, pero nada parece haber funcionado.
console.log("Rap songs"); const filter = await page.$$( ".SquareManySelects__Option-sc-1kktot3-5.eLlkRP" ); for (let i = 0; i < filter.length; i++) { const name = await filter[i].$eval( ".SquareSelectOption__Container-h4rr3o-0.gMvRPT", (v) => v.textContent ); if (name == "Rap") { console.log({ name, }); // ***************** WORIKING WITH THREADING ERROR ********************* await Promise.all([ page.waitForSelector( ".SquareSelectOption__Container-h4rr3o-0.gMvRPT" ), filter[i].click(), ]); // ***************** WORIKING WITH THREADING ERROR ********************* break; } } await page.waitForTimeout(3000); // TESTING const reviewElements = await page.$$( ".ChartSongdesktop__CoverAndTitle-sc-18658hh-0.jzapEV" ); for (let i = 0; i < reviewElements.length; i++) { const name = await reviewElements[i].$eval( ".ChartSongdesktop__Title-sc-18658hh-3.fODYHn", (v) => v.textContent ); console.log({ name, }); } console.log("Done"); },