¡Google Places SCRAPER con Google API solo genera 19 resultados! ¿Qué estoy haciendo mal:

No sé qué estoy haciendo mal para obtener solo 19 resultados!!!

{
"nodes": [
{
"parameters": {
"method": "POST",
"url": "https://places.googleapis.com/v1/places:searchText",
"sendQuery": true,
"queryParameters": {
"parameters": []
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "X-Goog-Api-Key",
"value": "AIzhgyAKbwjkbdRrqJiMWI1ZqqEnWqf9W1LGdQo"
},
{
"name": "X-Goog-FieldMask",
"value": "places.displayName,places.formattedAddress,places.websiteUri,places.nationalPhoneNumber"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\n  \"textQuery\": \"Restaurant München\"\n  }\n",
"options": {
"pagination": {
"pagination": {
"parameters": {
"parameters": [
{
"type": "body",
"name": "pagetoken",
"value": "={{ $response.body.nextPageToken }}"
}
]
},
"paginationCompleteWhen": "other",
"completeExpression": "={{ !$response.body.nextPageToken }}",
"limitPagesFetched": true,
"maxRequests": 3,
"requestInterval": 500
}
}
}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.4,
"position": [
-320,
16
],
"id": "8af51d58-7828-455c-9592-af448f86d285",
"name": "HTTP Request",
"notesInFlow": false
}
],
"connections": {
"HTTP Request": {
"main": [
[]
]
}
},
"pinData": {},
"meta": {
"instanceId": "b8fdb2752f65c0bd29637aecfeb8c7d18f76e636899d8f68c0d1b34ea045ef3d"
}
}```

Bienvenido a la comunidad n8n @SuperNoobStarter
por favor verifica si la configuración body de tu paginación es correcta.

Hola @SuperNoobStarter

La razón por la que estás atrapado alrededor de 20 resultados es que Google solo envía datos en pequeñas «páginas». Para obtener el siguiente conjunto de resultados, n8n necesita una clave digital especial llamada «token» de Google. Actualmente, tu configuración no consigue esa clave y no la usa correctamente, así que n8n cree que ha llegado al final de la lista después de la primera página.

Primero, tienes que pedirle explícitamente a Google que envíe esa clave. En tu configuración, hay un encabezado «Field Mask» donde listas la información que quieres (como el número de teléfono y la dirección). Porque no incluiste «nextPageToken» en esa lista, Google simplemente omite la clave en la respuesta, dejando a n8n sin forma de pedir la página dos.

Segundo, hay un pequeño error tipográfico en tu configuración de paginación. Escribiste «pagetoken» en minúsculas, pero Google es muy estricto y requiere una «T» mayúscula («pageToken»). Debido a este error tipográfico, Google ignora la solicitud de más datos. Una vez que corrijas el encabezado y la letra mayúscula, comenzarás a ver más resultados, aunque también es posible que necesites aumentar tu límite de «max requests» si quieres más de 60 resultados en total.

Aquí está el JSON corregido. Puedes copiar esto y pegarlo directamente en tu lienzo de flujo de trabajo de n8n.

Nota: Aumenté maxRequests a 10 (en lugar de 3) para que puedas recuperar hasta 200 resultados. Puedes ajustar este número según cuántos restaurantes necesites

¡Hola!

¡Muchas gracias por tu respuesta tan detallada!

¡Lo voy a probar ahora mismo! Disculpa por la pregunta de principiante, ¡pero de verdad que busqué en internet antes! ¡Te aviso si funciona!

☆☆☆☆☆ ¡respuesta! ¡Te envío buena energía​:wink::face_blowing_a_kiss:!!! ¡Que tengas un día perfecto!!!

¡He cometido un error! Estoy buscando negocios sin sitio web.

¿Qué tengo que escribir? ¿WebsiteUri=null o algo así?

¡Gracias!

Hola @SuperNoobStarter

Primero, estás viendo los mismos datos repetidamente porque tienes demasiados nodos. El nodo HTTP Request en n8n tiene una función de paginación integrada que maneja los tokens de “siguiente página” automáticamente. Al encadenar tres nodos idénticos, esencialmente le estás diciendo a n8n que comience la búsqueda completa desde la página uno tres veces diferentes. Solo necesitas un único nodo HTTP Request para obtener todos tus resultados.

Segundo, no puedes pedirle a la API de Google que solo muestre negocios sin sitios web; la API simplemente no tiene un filtro “null” o “vacío”. Para lograr esto, tienes que descargar todos los resultados primero y luego usar un nodo “Filter” de n8n. Este nodo examinará la lista y descartará cualquier negocio que tenga un sitio web, dejándote solo con los que no lo tienen.

Finalmente, hay un riesgo de seguridad grave: accidentalmente compartiste tu clave secreta de la API de Google en tu mensaje. Como esta clave ahora es pública, cualquiera puede usarla y cargar costos a tu cuenta. Necesitas ir a tu Google Cloud Console inmediatamente, eliminar esa clave específica y crear una nueva para mantener tu cuenta segura.

Por favor, prueba esto:

Crucial: He reemplazado tu clave API filtrada con un marcador de posición YOUR_NEW_API_KEY. Debes reemplazar esto con la nueva clave que generes en Google Cloud Console.

¡Muchas gracias! ¡Eliminé la API e hice una completamente nueva! ¡También probaré el workflow y le haré algunos ajustes! ¡Gracias por tu tiempo y dedicación!

Ahora obtengo 60 resultados… ¡Eso va en la dirección correcta! :slight_smile:

Tengo una entrada con WebsiteUri sin definir y quiero filtrarla! ¡Adjunté una captura de pantalla de cómo lo intenté! ¡Pero algo estoy haciendo mal! ¿Quizás podrías ayudarme una última vez? ¿Cómo obtengo más resultados? Gracias :heart_eyes:

La razón por la que tu filtro no funciona es que le estás indicando a n8n que busque la palabra “undefined” escrita como texto. En el mundo de los datos, “undefined” no es una palabra, es un estado que significa que la información está completamente ausente. Debido a que el campo website está vacío en lugar de contener el texto “undefined”, el filtro lo ignora. Para arreglarlo, cambia el operador de “contiene” a “Está vacío”. Esto le dice a n8n que conserve todo aquello donde el campo website está ausente, es nulo o está en blanco.

Con respecto a tus resultados, Google envía datos en “páginas” de 20 negocios a la vez. Tu captura de pantalla muestra que tienes 19 o 20 lugares en un resultado, que es el máximo que Google permite por página. Tus configuraciones de paginación en realidad son correctas, pero Google tiene un límite máximo en la cantidad total de resultados que mostrarán para una búsqueda única (generalmente alrededor de 60 en total). Si has alcanzado ese límite, el nextPageToken simplemente desaparecerá y la búsqueda se detendrá.

Para obtener más resultados más allá de ese límite, no puedes simplemente cambiar una configuración; tienes que “engañar” a la API siendo más específico. En lugar de buscar “Restaurant München”, intenta buscar en barrios específicos (p. ej., “Restaurant Maxvorstadt München” o “Restaurant Schwabing München”). Al dividir tu única búsqueda grande en varias búsquedas más pequeñas basadas en ubicación, puedes eludir el límite de 60 resultados y reunir cientos de negocios.

Aquí está el flujo de trabajo mejorado

*Recordatorio: Reemplaza YOUR_NEW_API_KEY con tu nueva clave.

¡Wow! ¡Genial! ¡Eres un auténtico profesional! ¡Lo resolveré después de mi siesta! ¡Muchas gracias!

¡N8n es realmente complicado para principiantes, así que me alegra que haya gente como tú! ¡Te tengo mucho respeto!

¡Un abrazo!

He probado de todo ajustando cosas.

No puedo encontrar la manera de separarlo ;-(… Por favor ayuda ;-01

Intenta esto:

1)Elimina la expresión fx.
2)Haz clic en el campo y selecciona websiteUri del menú desplegable (el selector de variables) en lugar de escribirlo en el cuadro de expresión.
3)Mantén el operador como Está vacío.

¡Hola y bienvenido! Hay dos problemas aquí. Primero, JSON distingue entre mayúsculas y minúsculas, pagetoken y pageToken son cosas completamente diferentes. Google solo reconoce pageToken (con T mayúscula), así que ignora el token que se envía y simplemente devuelve la primera página cada vez.

Segundo, la API de Places de Google necesita aproximadamente 2 segundos antes de que un token de página sea válido, 500 ms es demasiado rápido, y el token se rechaza silenciosamente.

¡Gracias por tu respuesta tan detallada! ¡Aplicaré tus consejos a mi wf!

¡Paz!