Haz scraping de los resultados de búsqueda de Google Maps en un navegador real y obtén cada lugar de la página: nombre, valoración, reseñas, categoría, dirección, horario y coordenadas. Una página que no carga no cuesta nada.
1000 solicitudes gratis · Solo pagas si funciona · 195+ países · Listo para Claude
¿Listo para tus propias búsquedas? Obtén una clave de API o reserva una demo.
Cuéntanos un poco sobre tu equipo y recibe:
Cada búsqueda de Google Maps se detiene en unos 60 lugares, en la app y en la API. Corta la ciudad en cuadrículas: cada cuadrícula es una página más al mismo precio, y la lista sigue creciendo.
Coste de 25 búsquedas por cuadrícula, una página cada una
Gologin Web Unlockerunos $0.02
Google Places APIunos $0.80
La API oficial devuelve los campos que Google elige para ella. La página de Maps contiene más, y Web Unlocker devuelve la página completa.
| Lo que obtienes | Google Places API | |
|---|---|---|
| 1000 lugares con teléfono y sitio web | Unos $1.10 | Unos $1.75 |
| Valoraciones desglosadas por estrellas, de 5 a 1 | Sí | No, solo el promedio |
| Temas de reseñas con recuento | Sí | No |
| Enlace de reserva en línea | Sí | No, solo un indicador de sí o no |
| Conservar los resultados | Sin límites por nuestra parte | Solo ID de lugar |
¿Haces scraping de más que Google Maps? Web Unlocker devuelve cualquier página de la misma forma y al mismo precio.
Google Maps ordena los lugares según desde dónde se hace la búsqueda. Elige un país, una región o una ciudad, y Web Unlocker carga el mapa desde allí.
¿Listo para buscar desde la ciudad de tus clientes? Obtén tu clave de API y solicitudes gratis.
Una solicitud por búsqueda: envía la dirección de Maps, recibe la página renderizada y lee los lugares. La demo de arriba ejecuta el mismo parser.
Rellena el formulario de arriba. La clave llega por correo en un día laborable.
google.com/maps/search/ más tu consulta, y el país, la región o la ciudad desde la que buscar.
Cada lugar es una tarjeta de la página, con el nombre, la valoración, las reseñas, la dirección y el horario a la vista.
GOLOGIN_SCRAPING_API_KEY=your_key node maps-search.mjshttps://parsing.webunlocker.gologin.com/v1/scrapeconst search = 'dentists in Miami';
const params = new URLSearchParams({
url: `https://www.google.com/maps/search/${encodeURIComponent(search)}?hl=en&ucbcb=1`,
render_js: 'true',
wait: '9000',
geo: 'us',
format: 'json',
});
const response = await fetch(`https://parsing.webunlocker.gologin.com/v1/scrape?${params}`, {
headers: { apikey: process.env.GOLOGIN_SCRAPING_API_KEY },
});
const { data } = await response.json();
const text = (value) => value?.replaceAll('&', '&').replaceAll(''', "'").replaceAll('"', '"');
const places = data.html
.split('role="article"')
.slice(1)
.map((card) => ({
name: text(card.match(/class="hfpxzc" aria-label="([^"]+)"/)?.[1]),
rating: card.match(/>([1-5]\.\d)</)?.[1],
reviews: card.match(/>\(([\d,]+)\)</)?.[1],
lat: card.match(/!3d(-?[\d.]+)/)?.[1],
lng: card.match(/!4d(-?[\d.]+)/)?.[1],
}));
console.table(places);pip install requestsGOLOGIN_SCRAPING_API_KEY=your_key python maps_search.pyhttps://parsing.webunlocker.gologin.com/v1/scrapeimport html as entities
import os
import re
from urllib.parse import quote
import requests
search = "dentists in Miami"
response = requests.get(
"https://parsing.webunlocker.gologin.com/v1/scrape",
params={
"url": f"https://www.google.com/maps/search/{quote(search)}?hl=en&ucbcb=1",
"render_js": "true",
"wait": "9000",
"geo": "us",
"format": "json",
},
headers={"apikey": os.environ["GOLOGIN_SCRAPING_API_KEY"]},
timeout=90,
)
html = response.json()["data"]["html"]
def find(pattern, card):
match = re.search(pattern, card)
return entities.unescape(match.group(1)) if match else None
for card in html.split('role="article"')[1:]:
print(
find(r'class="hfpxzc" aria-label="([^"]+)"', card),
find(r">([1-5]\.\d)<", card),
find(r">\(([\d,]+)\)<", card),
find(r"!3d(-?[\d.]+)", card),
find(r"!4d(-?[\d.]+)", card),
)GOLOGIN_SCRAPING_API_KEY=your_key node maps-tiles.mjshttps://parsing.webunlocker.gologin.com/v1/scrapeconst query = 'dentists';
const center = { lat: 25.775, lng: -80.23 };
const step = 0.03;
const found = new Map();
async function tile(lat, lng) {
const params = new URLSearchParams({
url: `https://www.google.com/maps/search/${query}/@${lat},${lng},15z?hl=en&ucbcb=1`,
render_js: 'true',
wait: '9000',
geo: 'us',
format: 'json',
});
for (let attempt = 0; attempt < 3; attempt += 1) {
const response = await fetch(`https://parsing.webunlocker.gologin.com/v1/scrape?${params}`, {
headers: { apikey: process.env.GOLOGIN_SCRAPING_API_KEY },
});
if (response.ok) return (await response.json()).data.html;
await new Promise((resolve) => setTimeout(resolve, 10000));
}
return '';
}
for (let row = -2; row <= 2; row += 1) {
for (let col = -2; col <= 2; col += 1) {
const html = await tile((center.lat + row * step).toFixed(4), (center.lng + col * step).toFixed(4));
for (const card of html.split('role="article"').slice(1)) {
const name = card.match(/class="hfpxzc" aria-label="([^"]+)"/)?.[1];
if (name) found.set(name, { name, lat: card.match(/!3d(-?[\d.]+)/)?.[1], lng: card.match(/!4d(-?[\d.]+)/)?.[1] });
}
console.log(`tile ${row},${col}: ${found.size} places so far`);
}
}
console.table([...found.values()]);¿Necesitas hacer clic, desplazarte o abrir antes la pestaña de reseñas? Cloud Browser da a tu código el navegador completo.
Una página de búsqueda lista hasta 7 lugares, y la página de cada lugar añade el teléfono y el sitio web. A un precio por página, 1000 lugares con contactos salen por unos $1.10.
Una página difícil cuesta
lo mismo que una fácil.
Una página que no carga no cuesta nada. Pagas por una página renderizada, nada más.
Lo que cuestan 1000 lugares con teléfono y sitio web
Precios publicados por la competencia
Web Unlocker en el plan Growth, $0.98 por 1000 páginas.
Una cuenta, una red de proxies, un ecosistema. Elige el producto que necesita cada tarea.
¿Haces scraping de otras tiendas? Consulta los scrapers de Amazon, eBay y Walmart.
Envía la dirección de búsqueda de Google Maps a Web Unlocker. Abre la página en un navegador real desde el país que elijas y devuelve el HTML renderizado. Cada lugar está en su propia tarjeta, así que un parser corto lee el nombre, la valoración, las reseñas, la categoría, la dirección, el horario y las coordenadas. El código de arriba hace exactamente eso.
Envía la dirección de búsqueda de Maps a Web Unlocker con la biblioteca requests y lee los lugares del HTML. La pestaña Python de arriba es un script completo, de 37 líneas, probado en la API real.
Los resultados de búsqueda y las páginas de cada lugar son públicos y cargan sin iniciar sesión. Web Unlocker los carga como lo hace el navegador de un visitante y devuelve la página. Qué recoges y cómo lo usas es decisión tuya, así que compruébalo con las normas que se apliquen a tu proyecto.
Entre 7 y 11 por página, y ninguna búsqueda pasa de unos 60: Google corta todas las listas ahí, en la app y en la API. Para una ciudad entera, busca en el mapa cuadrícula por cuadrícula. 25 cuadrículas sobre Miami devolvieron 146 dentistas distintos por unos 2 centavos. La pestaña Ciudad del código de arriba hace exactamente eso.
Sí. Abre la página de un lugar desde los resultados de búsqueda: incluye el teléfono, el sitio web, el plus code y un enlace de reserva si el lugar lo tiene. Es una solicitud más al mismo precio.
Google Maps muestra el sitio web de un lugar, no su correo. El correo está en ese sitio web, y Web Unlocker lo abre de la misma forma: una página más al mismo precio.
Haz scraping de la página del lugar: incluye el resumen de reseñas, cuántas valoraciones recibió cada nivel de estrellas, los temas que mencionan las personas con su recuento, y las mejores reseñas con el autor, las estrellas, la fecha y el texto completo.
Web Unlocker devuelve la página, no una tabla, así que no se recorta nada antes de que la veas. Convertirla en un CSV son unas pocas líneas de código, o un solo prompt: pasa la página a Claude con la skill de scraping de Gologin y pide un CSV.
Sí. Indica un país, una región o una ciudad, y la página se carga desde allí. Los resultados siguen desde dónde se hace la búsqueda, así que la misma consulta en Miami y en Tokio devuelve lugares distintos.
De 5 a 30 segundos en nuestras pruebas: el mapa se carga en un navegador real antes de que vuelva la página.
HTML renderizado, Markdown, texto sin formato y JSON con los metadatos de la página.
Menos de $1 por 1000 páginas, y el mismo precio para cada página, así que 1000 lugares con teléfono y sitio web salen por unos $1.10. Una página que no carga no cuesta nada. Los planes empiezan en $49 al mes por 50 000 solicitudes.
Sí, para empezar: Web Unlocker incluye 1000 solicitudes gratis, suficientes para unas 1000 páginas de búsqueda o 7000 lugares. Después cuesta menos de $1 por 1000 páginas.
No. Web Unlocker elige la IP por ti, en más de 195 países.
Depende de lo que necesites. Apify y Outscraper venden tablas ya hechas por lugar. Web Unlocker devuelve la página completa de Maps desde cualquier ciudad a un precio por página, así que conservas cada campo y lo analizas a tu manera.
Cuéntanos un poco sobre tu equipo y recibe: