Skip to main content

Local business leads finder using Decodo proxies

Project description

Local Leads Finder

Local Leads Finder demo

Fast, scalable local business lead generation powered by Decodo Web Scraping API.

Turn a simple keyword and location into a ready-to-use dataset of local businesses from Google Maps. Perfect for freelancers, agencies, and SMBs who need quality leads at scale.

Table of Contents

Quick Start

Option 1: Use the hosted web app (recommended)

  • Visit Local Leads Finder website to use Local Leads Finder instantly.
  • Enter your Decodo username and password directly in the UI when prompted.
  • Start a search and download results without any local setup.

Option 2: Run locally

Step 1: Installation

# Clone the repository
git clone https://github.com/yourusername/local-leads-finder.git
cd local-leads-finder

# Install dependencies
pip install -r requirements.txt

# Or install as a package
pip install -e .

Step 2: Get Decodo credentials

Get your Scraper API credentials from Decodo Dashboard:

  1. Navigate to "Scraper" tab
  2. Find your username and password

Step 3: Configure environment (CLI only)

Note: The web interface has its own credential management - users enter credentials directly in the UI.

For CLI usage, create a .env file:

# Create .env file
cp .env.example .env

# Add your credentials
echo "DECODO_USERNAME=your_username" >> .env
echo "DECODO_PASSWORD=your_password" >> .env

Step 4: Start collecting leads

Option A: Web Interface

cd webapp
python app.py

Check the terminal output for the exact URL (default is http://localhost:5000, but another free port may be used) and open it in your browser.

Option B: Command Line

leads-finder --query "dentist" --city "Toronto" --out leads.csv

Usage

Web Interface

The web interface provides a modern, user-friendly way to find leads:

  1. Start the web server:

    cd webapp
    python app.py
    
  2. Open your browser to the URL printed in the terminal (defaults to http://localhost:5000, but may vary if that port is in use)

  3. Fill in the search form:

    • Business Type (e.g., "dentist", "pizza restaurant")
    • Location with a given radius to look around
    • City (e.g., "Toronto", "New York")
    • Results Limit (1-1000)
    • Country (optional)
  4. Watch real-time progress as leads are collected

  5. View results in an interactive table

  6. Export to CSV or JSON with one click

Command Line Interface

Basic Examples

# Find dentists in Toronto
leads-finder --query "dentist" --city "Toronto" --out toronto_dentists.csv

# Find pizza places in New York (200 results)
leads-finder --query "pizza" --city "New York" --limit 200 --out nyc_pizza.csv

# Find plumbers in Montreal
leads-finder --query "plumber" --city "Montreal" --out montreal_plumbers.csv

CLI Options

leads-finder --help
Option Description Default
--query Search keyword (e.g., "dentist", "pizza") Required
--city Target city name Required
--limit Max results to collect 100
--out Output file (CSV or JSON) leads.csv
--rps Requests per second rate limit 1.0
--username Decodo username DECODO_USERNAME env var
--password Decodo password DECODO_PASSWORD env var

Batch Processing

# Process multiple cities
for city in "Toronto" "Montreal" "Vancouver"; do
  leads-finder --query "dentist" --city "$city" --out "dentists_$city.csv"
done

Export to JSON

leads-finder --query "gym" --city "Los Angeles" --out gyms.json

Output Format

CSV file with the following columns:

Field Description
name Business name
category Primary category or type
phone Contact number
website Business website
rating Google Maps rating (1-5)
reviews_count Number of reviews
address Full address
city City name
country Country code (US, CA, etc.)
lat Latitude
lon Longitude
source Data source (Google Maps)
scraped_at ISO timestamp

Docker Usage

Build the image

docker build -t leads-finder .

Run the CLI inside Docker

docker run --rm \
  -e DECODO_USERNAME=your_username \
  -e DECODO_PASSWORD=your_password \
  -v "$(pwd)/output:/out" \
  leads-finder \
  --query "dentist" --city "Toronto" --out /out/leads.csv

Run the web interface inside Docker

docker run --rm \
  -p 5000:5000 \
  -e DECODO_USERNAME=your_username \
  -e DECODO_PASSWORD=your_password \
  leads-finder \
  web

Open your browser to http://localhost:5000. To use a different port, change the mapping (-p 8080:8080) and set -e PORT=8080.

API Request Example

from leads_finder.core.scraper_api_session import ScraperAPISession

session = ScraperAPISession(username="user", password="pass")
results = session.google_maps_search(
    query="dentist",
    geo="Toronto",
    limit=100
)
businesses = results.get("results", [])

Future Features

  • Social media profiles
  • Business hours
  • Scheduled scraping

Contributing

Contributions welcome! Please open an issue or PR.

Author

Yousef Kotp

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

leads_finder-1.0.1.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

leads_finder-1.0.1-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

Details for the file leads_finder-1.0.1.tar.gz.

File metadata

  • Download URL: leads_finder-1.0.1.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.18

File hashes

Hashes for leads_finder-1.0.1.tar.gz
Algorithm Hash digest
SHA256 c496caa2fc16308b3119f7a1dfbc5b0a12229e90741f03a55c208d4c7970502f
MD5 7c545714be9b4d5c8f50b1976c415c9d
BLAKE2b-256 3b2b2bb91760241c14a370110f1e1f4c85d6ab80977d55b7dcee2a13c9399e70

See more details on using hashes here.

File details

Details for the file leads_finder-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: leads_finder-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 18.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.18

File hashes

Hashes for leads_finder-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4b6a7dfe1225ba0bb5c32bdcbfae9222930e6ad43b674a861958317f6de59451
MD5 4809859587f1d424bd849286b7015fd0
BLAKE2b-256 1f0871d89276c75b1e39f73f7a4fb6be6a85c0273f1c6b261e14763eed4fefb7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page