Estoy trabajando en un proyecto de raspado para raspar las revisiones de Google Maps, pero me llamó la atención cuando tengo que analizar las imágenes publicadas por los usuarios. Probé este método que solo me da la primera imagen publicada por el usuario:
$('.gws-localreviews__google-review').each((i,el) => { images[i] = $(el) .find(".EDblX .JrO5Xe").attr("style") }) Estoy extrayendo reseñas de Google por esta URL: https://www.google.com/async/reviewDialog?hl=en&async=feature_id:0x47e66e2964e34e2d:0x8ddca9ee380ef7e0,next_page_token:,sort_by:,start_index:,associated_topic:,_fmt:pc
Aquí está mi respuesta:
[ 'background-image:url(https://lh5.googleusercontent.com/p/AF1QipPgClEw3JwTLJOuf-DqC2xtZRodoavkpYVFBYqu=w100-h100-pnk-no)', 'background-image:url(https://lh5.googleusercontent.com/p/AF1QipOs9TSNoyYmW1GL4SH9PlkAihvWsUbMTn-8O2Sj=w100-h100-pnk-no)', 'background-image:url(https://lh5.googleusercontent.com/p/AF1QipMBRGdJb3zL1rME20osajG-bosdIV8U82VTYS1n=w100-h100-pnk-no)', 'background-image:url(https://lh5.googleusercontent.com/p/AF1QipOBuGDXFDhJP69LNo6yI9cZWcjSVHpVfPBNoKyL=w100-h100-pnk-no)', 'background-image:url(https://lh5.googleusercontent.com/p/AF1QipP7wBZt8Kilm8VF75T8amjMrZ7ZkOpmtb0nHChF=w100-h100-pnk-no)', 'background-image:url(https://lh5.googleusercontent.com/p/AF1QipOixJabuSd4mSHnveU5JSQ1ZszHJ6Hn-pkeosiY=w100-h100-pnk-no)', 'background-image:url(https://lh5.googleusercontent.com/p/AF1QipPyOXO1vnyTXVnlkPJNLlnoHYHEna36vYnrqwE=w100-h100-pnk-no)', 'background-image:url(https://lh5.googleusercontent.com/p/AF1QipPReBboes7S7lNklRT21pwn096JUQVJbTX3VRRA=w100-h100-pnk-no)', 'background-image:url(https://lh5.googleusercontent.com/p/AF1QipNPLvARJu1vDk03r_y4fp8f7aDDvzRX-7yJklW8=w100-h100-pnk-no)', 'background-image:url(https://lh5.googleusercontent.com/p/AF1QipMW3jp20hjKwuvhogH9ZC8IeH8QhQTUESH_ycNX=w100-h100-pnk-no)' ]Pero lo que quiero es un objeto que contenga imágenes de un usuario, luego un segundo objeto que contenga imágenes de un segundo usuario y así sucesivamente.
Quiero los resultados así:
[ { "All image's links posted by user 1" }, { "All images links posted by user 2" } { "All images links posted by user 3" }, { "All images links posted by user 4" }, { ........ } ]Entonces encontré la respuesta, fue un poco complicado, pero sí, se resolverá así:
$(".gws-localreviews__google-review").each((i, el) => { images[i] = $(el) .find(".EDblX .JrO5Xe") .toArray() .map($) .map(d => d.attr("style").substring(21 , d.attr("style").lastIndexOf(")"))) }); })Devolverá la respuesta así:
[ [ All images posted by user 1, ], [ All images posted by user 2, ], [......... ]