mirror of
https://github.com/gosom/google-maps-scraper.git
synced 2026-09-19 07:27:12 +08:00
docs: expand recipes and saas deployment guidance
This commit is contained in:
+119
-1
@@ -2,6 +2,18 @@
|
||||
|
||||
Common workflows for lead generation, research, and developer automation.
|
||||
|
||||
## Prepare Queries
|
||||
|
||||
```bash
|
||||
cat > example-queries.txt <<'EOF'
|
||||
dentists in Berlin Germany
|
||||
plumbers in Austin Texas
|
||||
coffee shops in Dublin Ireland
|
||||
EOF
|
||||
```
|
||||
|
||||
Use natural Google Maps searches. For most local lead-generation jobs, use the business type plus city, region, and country. For larger cities, split the city into neighborhoods if you need broader coverage.
|
||||
|
||||
## Basic CSV Lead Scrape
|
||||
|
||||
```bash
|
||||
@@ -18,6 +30,112 @@ docker run \
|
||||
-exit-on-inactivity 3m
|
||||
```
|
||||
|
||||
## Extract Emails
|
||||
|
||||
Add `-email`:
|
||||
|
||||
```bash
|
||||
docker run \
|
||||
-v gmaps-playwright-cache:/opt \
|
||||
-v "$PWD/example-queries.txt:/queries.txt:ro" \
|
||||
-v "$PWD/gmaps-output:/out" \
|
||||
gosom/google-maps-scraper \
|
||||
-input /queries.txt \
|
||||
-results /out/results.csv \
|
||||
-depth 1 \
|
||||
-email \
|
||||
-exit-on-inactivity 3m
|
||||
```
|
||||
|
||||
Email extraction visits business websites when available, so it is slower than a basic Maps scrape.
|
||||
|
||||
## JSON Output and Extra Reviews
|
||||
|
||||
```bash
|
||||
docker run \
|
||||
-v gmaps-playwright-cache:/opt \
|
||||
-v "$PWD/example-queries.txt:/queries.txt:ro" \
|
||||
-v "$PWD/gmaps-output:/out" \
|
||||
gosom/google-maps-scraper \
|
||||
-input /queries.txt \
|
||||
-results /out/results.json \
|
||||
-json \
|
||||
-extra-reviews \
|
||||
-depth 1 \
|
||||
-exit-on-inactivity 3m
|
||||
```
|
||||
|
||||
Use JSON when collecting extra reviews.
|
||||
|
||||
## Concurrency
|
||||
|
||||
`-c` controls how many scrape jobs run in parallel. Higher concurrency can finish large input files faster, but it also uses more CPU/RAM and can increase blocking or failures, especially without proxies. Start with the default for a first run. For larger jobs on a capable machine, try `-c 4`, `-c 8`, or `-c 16` and measure the result.
|
||||
|
||||
## Proxies
|
||||
|
||||
For proxy setup and current proxy sponsors, see [Proxy Sponsors](proxies.md).
|
||||
|
||||
More recipes will be expanded in the dedicated recipes task.
|
||||
## Grid Scraping
|
||||
|
||||
```bash
|
||||
docker run \
|
||||
-v gmaps-playwright-cache:/opt \
|
||||
-v "$PWD/example-queries.txt:/queries.txt:ro" \
|
||||
-v "$PWD/gmaps-output:/out" \
|
||||
gosom/google-maps-scraper \
|
||||
-input /queries.txt \
|
||||
-results /out/results.csv \
|
||||
-depth 5 \
|
||||
-grid-bbox "52.34,13.09,52.68,13.76" \
|
||||
-grid-cell 1.0 \
|
||||
-exit-on-inactivity 3m
|
||||
```
|
||||
|
||||
Grid scraping divides a bounding box into cells for broader area coverage. Smaller cells increase coverage and runtime.
|
||||
|
||||
## REST API Automation
|
||||
|
||||
Start the Web UI/API server:
|
||||
|
||||
```bash
|
||||
mkdir -p gmapsdata
|
||||
|
||||
docker run \
|
||||
-v gmaps-playwright-cache:/opt \
|
||||
-v "$PWD/gmapsdata:/gmapsdata" \
|
||||
-p 8080:8080 \
|
||||
gosom/google-maps-scraper \
|
||||
-data-folder /gmapsdata
|
||||
```
|
||||
|
||||
Open API docs at `http://localhost:8080/api/docs`.
|
||||
|
||||
Client examples are available in `examples/examples-api/`.
|
||||
|
||||
## Self-Hosted SaaS Platform
|
||||
|
||||
Use the SaaS edition when you need multiple users, API keys, an admin UI, job queue, workers, and cloud provisioning:
|
||||
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/gosom/google-maps-scraper/main/PROVISION | sh
|
||||
```
|
||||
|
||||
See [SaaS documentation](saas.md).
|
||||
|
||||
## Docker Mount Notes
|
||||
|
||||
The examples mount an output directory:
|
||||
|
||||
```bash
|
||||
-v "$PWD/gmaps-output:/out"
|
||||
```
|
||||
|
||||
This is more reliable than mounting `results.csv` directly. If a host file does not exist, Docker can create it as a directory, which causes `open /results.csv: is a directory`.
|
||||
|
||||
The examples also mount a named volume at `/opt`:
|
||||
|
||||
```bash
|
||||
-v gmaps-playwright-cache:/opt
|
||||
```
|
||||
|
||||
This lets Docker reuse Playwright/browser files across runs.
|
||||
|
||||
+20
-1
@@ -1,11 +1,30 @@
|
||||
# Google Maps Scraper - SaaS Edition
|
||||
|
||||
A multi-user Google Maps scraping platform with REST API, admin UI, job queuing, and cloud deployment.
|
||||
The SaaS edition is an optional self-hosted Google Maps scraping platform for teams and automation workflows. It adds REST API access, API keys, admin UI, job queue, workers, and cloud deployment on top of the scraper.
|
||||
|
||||
## When to Use It
|
||||
|
||||
Use the SaaS edition when you need:
|
||||
|
||||
- Multiple users or API clients
|
||||
- API keys for controlled access
|
||||
- Admin screens for jobs, workers, and settings
|
||||
- Queue-based scraping with workers
|
||||
- A deployable scraping API on your own infrastructure
|
||||
|
||||
For a single local scrape to CSV or JSON, start with the main README quick start or [recipes](recipes.md).
|
||||
|
||||
## Deploy
|
||||
|
||||
Requirements: **Docker** installed and running.
|
||||
|
||||
The provisioning wizard supports VPS, DigitalOcean, and Hetzner deployments. If you plan to deploy on a new cloud account, using these links helps fund project maintenance:
|
||||
|
||||
| Provider | Link |
|
||||
|---|---|
|
||||
| DigitalOcean | [Create account / deploy](https://www.digitalocean.com/?refcode=c11136c4693c&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge) |
|
||||
| Hetzner | [Create account / deploy](https://hetzner.cloud/?ref=ihtQPa0cT18n) |
|
||||
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/gosom/google-maps-scraper/main/PROVISION | sh
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user