Map Scrape itu aplikasi desktop buat ngumpulin data tempat usaha dari Google Maps. Kamu tentukan lokasi dan kata kunci, sisanya dia yang kerjain: ambil nama, rating, jumlah ulasan, telepon, WhatsApp, website, alamat, sampai jam buka, lalu rapikan jadi file Excel, CSV, atau JSON yang siap pakai.
Dibikin biar gampang dipakai siapa aja. Versi rilis tinggal klik dua kali, tanpa perlu install Python atau setup apa pun.
Targetkan area dengan presisi. Tentukan titik pusat plus radius, atau pilih wilayah lewat hierarki Provinsi → Kabupaten/Kota → Kecamatan → Desa (pakai data Kepmendagri 2025), bisa juga lewat kode pos.
Cakupan luas tanpa kelewat. Area besar otomatis dipecah jadi sel-sel kecil (grid search) supaya hasilnya lebih lengkap, dan berhenti sendiri begitu sudah jenuh.
Browser yang susah dideteksi. Pakai Patchright (Chromium versi stealth). Bisa jalan dengan jendela tampil atau diam-diam di belakang (headless).
Data yang lengkap. Rating, jumlah ulasan, telepon, WhatsApp, website, alamat, koordinat, kategori, plus jam buka mingguan dan status tempat (buka, tutup, tutup permanen, atau sementara).
Filter dan urutan sesuai kebutuhan. Saring berdasarkan rating, jumlah ulasan, kategori, atau wajib punya kontak. Pengurutan multi-aturan yang hasilnya konsisten.
Hasil yang rapi. Excel-nya bukan sekadar data mentah, tapi ada dashboard ringkasan dengan kartu KPI. Nama file dibikin pendek dan jelas otomatis.
Dua cara pakai. Lewat aplikasi jendela (GUI) atau mode terminal (CLI), terserah selera.
Portabel. Semua data, output, dan browser disimpan di dalam folder aplikasi. Pindahkan foldernya, aplikasinya tetap jalan. Pengaturan terakhir seperti bahasa dan mode headless juga ikut tersimpan.
| Bagian | Dipakai |
|---|---|
| Mesin scraping | Patchright / Playwright (Chromium) |
| Backend & API | FastAPI, Uvicorn, SSE (loopback) |
| Antarmuka | PyWebView, Alpine.js, Tailwind CSS |
| Terminal | Typer, Questionary, Rich |
| Pengolahan data | Pandas, XlsxWriter, openpyxl, phonenumbers |
| Penyimpanan | SQLite (aiosqlite) |
| Konfigurasi | Pydantic v2, YAML |
Butuh Python 3.11 ke atas di Windows.
git clone https://github.com/somaylab/map-scrape.git
cd map-scrape
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
patchright install chromium
# opsional, kalau mau pakai proxy atau API key
copy .env.example .env
python main.py gui # mode aplikasi jendela
python main.py # mode terminal
python main.py --help # daftar perintahBuat dibagikan ke orang yang tidak punya Python, bundel jadi executable:
pip install -r requirements-dev.txt
pip install pyinstaller
pyinstaller MapScrape.spec --noconfirmHasilnya dua executable dalam satu folder: Map Scrape.exe (aplikasi jendela) dan Map Scrape CLI.exe (mode terminal). Browser Chromium diunduh ke data/browsers saat pertama kali dijalankan. Detailnya ada di MapScrape.spec.
map-scrape/
├── main.py Entry point (pemilah CLI / GUI)
├── config.yaml Konfigurasi default
├── MapScrape.spec Resep build PyInstaller
│
├── core/ Mesin dan HTTP API
│ ├── scraper/ Browser, stealth, proxy, geo, grid, parser
│ ├── pipeline/ Normalize, filter, sort, dedup
│ ├── exporter/ CSV, XLSX, JSON
│ ├── state/ SQLite, checkpoint, wilayah
│ └── api/ FastAPI dan SSE
│
├── gui/ Window PyWebView dan frontend
├── cli/ Terminal (Typer)
├── scripts/ Pembangun data wilayah dan kode pos
├── data/ Data wilayah dan kode pos Indonesia
└── tests/ 317 test
pytest # jalankan semua test
ruff check . # cek lint
ruff format . # rapikan formatTool ini dibuat untuk keperluan riset pribadi dan edukasi. Pengguna bertanggung jawab penuh atas penggunaannya, termasuk mematuhi Ketentuan Layanan Google Maps dan aturan yang berlaku di wilayah masing-masing.
Dirilis di bawah lisensi MIT. Bebas dipakai, diubah, dan disebarkan.
Dibuat oleh wargavisual