EhsanShahbazii/Neshan-Maps-Scraper

GitHub: EhsanShahbazii/Neshan-Maps-Scraper

基于 Playwright 的 Neshan Maps 地图数据爬虫,支持关键词搜索、批量地点信息提取与多格式导出。

Stars: 5 | Forks: 0

Typing SVG

📍 一个强大、多彩且隐蔽的 Neshan Maps 爬虫
搜索商家,提取详细信息,并导出为 CSV、JSON、SQLite 等格式。

Python License Playwright


███╗   ██╗███████╗███████╗██╗  ██╗ █████╗ ███╗   ██╗

████╗  ██║██╔════╝██╔════╝██║  ██║██╔══██╗████╗  ██║

██╔██╗ ██║█████╗  ███████╗███████║███████║██╔██╗ ██║

██║╚██╗██║██╔══╝  ╚════██║██╔══██║██╔══██║██║╚██╗██║

██║ ╚████║███████╗███████║██║  ██║██║  ██║██║ ╚████║

╚═╝  ╚═══╝╚══════╝╚══════╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝



## ✨ 功能

- 🔍 **搜索任意查询** 在 [Neshan Maps](https://neshan.org/maps) 上(餐厅、商店、服务……)
- 📋 **提取丰富数据**:名称、类别、地址、电话、网站、营业时间、评分、评论
- 🎨 **美观的彩色控制台输出** 带进度条
- 🥷 **反检测**措施:随机 user-agents、可配置延迟、隐蔽滚动
- 📁 **多种导出格式** – CSV、JSON、Parquet、SQLite
- ⚙️ **完全可配置** 通过 CLI 参数



## 🚀 安装


```
# 克隆 repository

git clone https://github.com/your-username/neshan-scraper.git

cd neshan-scraper



# 安装 Python dependencies

pip install -r requirements.txt



# 安装 Playwright browsers (Chromium)

playwright install chromium
```






## 🖥️ 用法

使用简单的命令运行爬虫:


```
python neshan_scraper.py -s "فست فود تهران" -t 20 -f csv
```


这将搜索“德黑兰的快餐”,抓取 **20** 条列表,并将它们保存到带有时间戳的 CSV 文件中。

### ⚡ 所有选项

| 参数 | 简写 | 描述 | 默认值 |

|----------|-------|-------------|---------|

| `--search` | `-s` | 搜索查询(支持 UTF-8) | `فست فود تهران` |

| `--total` | `-t` | 要抓取的地点数量 | `5` |

| `--output` | `-o` | 导出文件的基本名称 | `neshan_export` |

| `--format` | `-f` | 输出格式:`csv`、`json`、`parquet`、`sqlite` | `csv` |

| `--headless` | | 在后台运行浏览器(无 GUI) | `False` |

| `--delay` | | 延迟配置:`low`、`medium`、`high` | `medium` |

| `--log` | | 日志级别:`DEBUG`、`INFO`、`WARNING`、`ERROR` | `INFO` |



## 📸 终端预览

这是爬虫运行时的效果:


```
(venv) ➜  neshan-scraper python neshan.py -s "cafe tehran" -t 10 -f csv --delay medium



  ███╗   ██╗███████╗███████╗██╗  ██╗ █████╗ ███╗   ██╗

  ████╗  ██║██╔════╝██╔════╝██║  ██║██╔══██╗████╗  ██║

  ██╔██╗ ██║█████╗  ███████╗███████║███████║██╔██╗ ██║

  ██║╚██╗██║██╔══╝  ╚════██║██╔══██║██╔══██║██║╚██╗██║

  ██║ ╚████║███████╗███████║██║  ██║██║  ██║██║ ╚████║

  ╚═╝  ╚═══╝╚══════╝╚══════╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝



======================================================



14:08:21 - INFO - Starting Scraper... Options: Format=csv, Headless=False, Delay=medium

14:08:22 - INFO - Navigating to Neshan to search: cafe tehran

14:08:24 - INFO - Scrolling to find 10 listings...

Scraping: 100%|██████████████████████████████| 10/10 [00:26<00:00]

14:08:50 - INFO - Data successfully saved to neshan_export_20260527_140850.csv
```


## 📦 输出示例 (CSV)

| name | category | address | phone_number | website | opening_hours_today | rating | reviews_count |

|------|----------|---------|--------------|---------|---------------------|--------|---------------|

| برگرلند | فست فود | تهران، خیابان ولیعصر... | ۰۲۱-۸۸۸۸۸۸۸۸ | https://... | ۱۱:۰۰ - ۲۳:۰۰ | 4.5 | (124) |



## ⚠️ 免责声明

此工具仅供**教育目的**和**个人研究**使用。  

请尊重网站的 `robots.txt` 和服务条款。不要通过激进的抓取使服务器过载。



## 📄 许可证

MIT ©EhsanShahbazi



Made with ❤️ and lots of ☕

标签:Playwright, Python, URL抓取, 数据抓取, 数据提取, 无后门, 特征检测, 逆向工具