Lead Scorpion Maps Scraper avatar

Lead Scorpion Maps Scraper

Pricing

Pay per usage

Go to Apify Store
Lead Scorpion Maps Scraper

Lead Scorpion Maps Scraper

Pricing

Pay per usage

Rating

0.0

(0)

Developer

João Pedro Miguel

João Pedro Miguel

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

Share

🦂 Lead Scorpion Maps Scraper

Scraper de Google Maps focado em B2B — emails, telefones, LinkedIn, Instagram e mais — tunado para baixo custo por padrão.


⚡ O que esse actor faz

Roda buscas no Google Maps (keyword × location), extrai os negócios e — opcionalmente — visita o site de cada um pra puxar emails + redes sociais. Tudo via PlaywrightCrawler, com proxy Apify, bypass de consent (EU/BR/US) e cache de domínio (não busca o mesmo site duas vezes na mesma run).

💰 Filosofia: barato por padrão, caro por escolha

A v1.1 tem defaults conservadores. Toggles caros (extractContactDetails, extractImages, extractReviews) começam desligados — você liga quando precisar.

Comparação v1.0 → v1.1

Settingv1.0v1.1Por quê
maxConcurrency308Sweet spot custo×velocidade — 30 exige 8GB+ RAM
maxCrawledPlacesPerSearch12020Run de teste mais barata
extractContactDetailstruefalseOpt-in — fetch HTTP extra
extractImagestruefalseRaramente usado em outreach
maxImages42Quando ligado
maxOpenPagesPerBrowser63Menos RAM por Chrome
navigationTimeoutSecs3020Sites travados não drenam proxy
requestHandlerTimeoutSecs6045Mata DETAIL lento
MAX_FETCH_BYTES (contact)30KB20KBEmails moram no head
CONTACT_TIMEOUT_MS3s2.5sSites lentos drenam workers
stagnantScrolls cap54Encerra scroll mais rápido
URL patterns bloqueados1129GTM, Hotjar, Clarity, Sentry, Intercom, FullStory, LogRocket, NewRelic, Datadog, Crisp, Tawk, Zendesk, Tidio, doubleclick, googlesyndication, adservice...
Resource types bloqueados68+websocket +eventsource

Impacto estimado numa mesma busca (1 query × 1 loc × 20 leads):

  • Tempo: ~30-50% mais rápido
  • RAM: ~40% menos
  • Compute units Apify: ~50-65% menos (∝ RAM × tempo)

🚀 Como subir a v1.1

Você é o autor — pra publicar:

cd "C:\Users\jpmig\OneDrive\Desktop\Scorpion Maps Scraper"
# Instala o Apify CLI (primeira vez)
irm https://apify.com/install-cli.ps1 | iex
# Login
apify login
# Sobe código + faz build na nuvem Apify
apify push

Depois entra em Publication e remove a flag "under maintenance".

🛠️ Rodar local (dev/teste)

cd "C:\Users\jpmig\OneDrive\Desktop\Scorpion Maps Scraper"
& "C:\Program Files\nodejs\npm.cmd" install
& "C:\Program Files\nodejs\npm.cmd" run start:dev

Input lido de storage/key_value_stores/default/INPUT.json.


📦 Input schema

CampoDefaultNotas
searchStringsArray["Marketing Agency"]Lista de keywords
locationQuery["New York, NY"]Lista de localizações; combina N×M
startUrls[]Bypass — URLs diretas do Maps
maxCrawledPlacesPerSearch20Por par (keyword × localização)
language"en-US""pt-BR" pra Brasil
extractContactDetailsfalseOpt-in — emails + socials
extractImagesfalseOpt-in — URLs de fotos
maxImages2Cap quando ligado
extractReviewsfalseOpt-in — review text (caro!)
maxReviews5Cap quando ligado
proxyConfiguration{ useApifyProxy: true }Sempre on
maxConcurrency820-30 só com 8GB+ RAM

🎯 Perfis prontos

"Telefone + nome, mais barato possível"

{
"searchStringsArray": ["dentista"],
"locationQuery": ["Pinheiros, São Paulo - SP"],
"maxCrawledPlacesPerSearch": 20,
"language": "pt-BR",
"extractContactDetails": false,
"extractImages": false,
"extractReviews": false,
"proxyConfiguration": { "useApifyProxy": true },
"maxConcurrency": 8
}

"Cold outreach completo (fone + email)"

{
"searchStringsArray": ["dentista"],
"locationQuery": ["Pinheiros, São Paulo - SP"],
"maxCrawledPlacesPerSearch": 50,
"language": "pt-BR",
"extractContactDetails": true,
"extractImages": false,
"extractReviews": false,
"proxyConfiguration": { "useApifyProxy": true },
"maxConcurrency": 8
}

"Pesquisa de mercado (com reviews)"

{
"searchStringsArray": ["restaurante italiano"],
"locationQuery": ["Itaim Bibi, São Paulo - SP"],
"maxCrawledPlacesPerSearch": 30,
"language": "pt-BR",
"extractContactDetails": false,
"extractReviews": true,
"maxReviews": 10,
"proxyConfiguration": { "useApifyProxy": true },
"maxConcurrency": 8
}

📊 Output

{
searchString: string; // "dentista Pinheiros, São Paulo - SP"
title: string;
categoryName: string | null;
address: string | null;
phone: string | null;
website: string | null;
location: { lat: number, lng: number } | null;
plusCode: string | null;
totalScore: number | null;
reviewsCount: number | null;
price: string | null; // "$$", "$$$"
permanentlyClosed: boolean;
temporarilyClosed: boolean;
isClaimed: boolean;
placeId: string | null;
url: string;
// Só se você ligar o toggle:
contactDetails?: { emails, facebook, instagram, linkedin, twitter, youtube, tiktok };
openingHours?: [{ day, hours }];
images?: string[];
reviews?: [{ name, stars, text, date }];
}

✅ DOs / ❌ DON'Ts

DO

  • Termos específicos: "Dentist", "Italian Restaurant"
  • Use o merger geográfico (niche + location separados)
  • maxConcurrency entre 5-10 (default 8 está perfeito)
  • Comece com maxCrawledPlacesPerSearch: 20 pra testar

DON'T

  • Buscar "Company" sem localização (Google joga lista caótica)
  • Pôr URL completa em searchStringsArray — use startUrls
  • Desligar proxy em runs grandes
  • Subir maxConcurrency pra 30+ sem aumentar a RAM do actor

🧱 Casos de uso

  1. Cold outreach B2B — emails + telefones de milhares de empresas em horas.
  2. Local SEO — filtra "isClaimed": false ou rating baixo pra vender otimização de GBP.
  3. Database / directories — listagens geográficas para diretórios ou análise competitiva.

Crafted by oblanceolate_infinity · v1.1 cost-optimized