🎯 线索生成器MCP服务器
   
一个强大的 模型上下文协议(MCP)服务器 以及从谷歌地图自动生成业务线索的独立抓取器。提取、验证和评分业务数据,以确定B2B销售、营销和外展活动的高质量潜在客户。
📋 目录
✨ 特性
- 🔍 自动抓取谷歌地图 -从搜索查询中提取业务数据
- 🤖 MCP服务器集成 -通过模型上下文协议公开抓取功能
- 📊 智能潜在客户评分 -根据网站存在、评论和评级对企业进行评级
- ✅ 数据验证 -验证电话号码和网站URL
- 🌐 国际电话格式 -使用谷歌的libphonenumber标准化电话号码
- 🎭 反检测机制 -用户代理轮换、随机延迟、类人行为
- 📈 进度跟踪 -带有tqdm的实时进度条
- 💾 CSV导出 -按潜在客户质量排序的结构化数据输出
- 🔄 错误恢复 -具有自动重试功能的强大错误处理
🎯 运作原理
┌─────────────┐ ┌──────────────┐ ┌─────────────┐ ┌──────────────┐
│ Search │────>│ Scroll & │────>│ Extract │────>│ Validate & │
│ Query │ │ Load Results │ │ Data │ │ Score Leads │
└─────────────┘ └──────────────┘ └─────────────┘ └──────────────┘
│
▼
┌──────────────┐
│ Export CSV │
└──────────────┘- 搜索:使用您的查询导航到谷歌地图
- 滚动:通过滚动动态加载结果(处理无限滚动)
- 提取:点击每个业务列表并抓取详细信息
- 验证:验证电话号码和网站
- 得分:计算潜在客户质量分数(0-100)
- 出口:保存到CSV,按潜在客户评分排序
🚀 安装
先决条件
- Python 3.8或更高版本
- pip(Python包管理器)
步骤1:克隆存储库
git clone https://github.com/4darsh-Dev/Lead-generator-mcp-server.git
cd Lead-generator-mcp-server第二步:创建虚拟环境
# Create virtual environment
python -m venv myenv
# Activate virtual environment
# On Linux/macOS:
source myenv/bin/activate
# On Windows:
myenv\Scripts\activate步骤3:安装依赖项
# Install Python packages
pip install -r requirements.txt
# Install Playwright browsers (required)
playwright install chromium📖 用法
1.独立刮板(CLI)
基本用法
python src/scraper.py --query "coffee shops in Seattle" --max-results 50高级选项
# Visible browser mode (for debugging)
python src/scraper.py --query "beauty salons in London" --max-results 100 --visible
# Custom output filename
python src/scraper.py --query "restaurants in New York" --max-results 200 --output ny_restaurants.csv
# Complete example
python src/scraper.py \
--query "plumbers in Boston" \
--max-results 150 \
--output boston_plumbers_2026.csv \
--visible命令行参数
| 参数 | 类型 | 必填 | 默认 | 描述 |
|---|---|---|---|---|
--query | string | ✅ 是 | - | 搜索查询(例如,“芝加哥的牙医”) |
--max-results | 整数 | ❌ 否 | 100 | 可抓取的最大企业数量 |
--output | string | ❌ 没有 | business_leads_{timestamp}.csv | 输出CSV文件名 |
--visible | 旗帜 | ❌ 否 | 错误 | 在可见模式下运行浏览器(无头=错误) |
查询示例
# Target businesses without websites (good for web dev services)
python src/scraper.py --query "yoga studios in Austin"
# B2B lead generation
python src/scraper.py --query "software companies in San Francisco" --max-results 300
# Local service businesses
python src/scraper.py --query "HVAC contractors in Phoenix" --max-results 150
# International search
python src/scraper.py --query "cafes in Mumbai" --max-results 1002.MCP服务器模式
作为MCP服务器运行,与AI助手和自动化工具集成:
python src/mcp-server.py服务器将于启动 http://localhost:8080 并揭露 scrape_google_maps 工具。
MCP工具使用
# Example MCP tool call
result = scrape_google_maps(
query="digital marketing agencies in Toronto",
max_results=50
)
# Returns: List of validated business data dictionaries⚙️ 配置
无头模式
# In your code
scraper = GoogleMapsScraper(headless=True) # Invisible (faster)
scraper = GoogleMapsScraper(headless=False) # Visible (debugging)慢动作(用于调试)
# Add delays between actions (milliseconds)
scraper = GoogleMapsScraper(headless=False, slow_mo=100)用户代理
用户代理从以下位置自动轮换 USER_AGENTS 列入 scraper.py。您可以添加更多:
USER_AGENTS = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...",
# Add your custom user agents here
]📊 输出格式
CSV列
| 列 | 类型 | 描述 |
|---|---|---|
name | string | 企业名称 |
category | string | 业务类别/类型 |
address | string | 完整地址 |
phone | string | 电话号码(国际格式) |
phone_valid | boolean | 电话号码验证状态 |
website | string | 网站URL |
website_valid | boolean | 网站可访问性状态 |
rating | float | 谷歌地图评分(0-5星) |
reviews | integer | 评论数 |
lead_score | integer | 计算出的潜在客户质量分数(0-100) |
输出示例
name,category,address,phone,phone_valid,website,website_valid,rating,reviews,lead_score
"Joe's Coffee Shop","Coffee shop","123 Main St, Seattle, WA","+1 206-555-0123",True,"N/A",False,4.8,342,85
"Brew & Bean","Café","456 Pike St, Seattle, WA","+1 206-555-0456",True,"https://brewbean.com",True,4.5,128,70🎯 潜在客户评分算法
企业得分来自 0-100 基于:
| 因素 | 影响 | 分数 |
|---|---|---|
| 没有网站 | web服务的高质量潜在客户 | +20 |
| 无效网站 | 需要网站帮助 | +15 |
| 高评级(4.5+) | 注重质量,有预算 | +10 |
| 低评价(\100) | 已建立,拥有资源 | +5 |
基础分数:50分\ 最高成绩:100分
线索是 自动排序 CSV输出中的分数(最高者优先)。
🏗️ 建筑
Lead-generator-mcp-server/
├── src/
│ ├── scraper.py # Core scraping logic
│ ├── mcp-server.py # MCP server wrapper
│ └── __init__.py
├── myenv/ # Virtual environment
├── requirements.txt # Python dependencies
├── LICENSE # MIT License
└── README.md # Documentation关键组件
GoogleMapsScraper类:带浏览器自动化的主抓取器scrape_google_maps()工具:MCP暴露功能- 剧作家:浏览器自动化框架
- 熊猫:数据操作和CSV导出
- 电话号码:电话验证(谷歌的libphonenumber)
- 进度条:进度条
🎭 防检测功能
- 用户代理轮换:每个会话随机用户代理
- 类人延迟:随机暂停1-3秒
- 逼真的标题:接受语言,接受标头
- 慢动作:行动之间的可配置延迟
- 滚动行为:像人类一样平滑滚动
- 错误恢复:巧妙地处理检测
🛠️ 故障排除
常见问题
问题: playwright._impl._errors.Error: Executable doesn't exist\ 解决方案:运行 playwright install chromium
问题:未找到结果\ 解决方案:
- 试着用
--visible要调试的标志 - 检查谷歌地图是否更改了HTML结构
- 验证您的互联网连接
问题:日志记录的ImportError/argparse\ 解决方案:将这些导入添加到 scraper.py:
import logging
import argparse
import random
import time
import re
import requests
import pandas as pd
import phonenumbers问题:滚动时脚本挂起\ 解决方案:
- 减少
--max-results价值 - 检查
max_attempts在scroll_results()方法
🤝 贡献
欢迎投稿!请按照以下步骤操作:
- 分叉存储库
- 创建要素分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
开发设置
# Clone your fork
git clone https://github.com/YOUR_USERNAME/Lead-generator-mcp-server.git
cd Lead-generator-mcp-server
# Create virtual environment
python -m venv myenv
source myenv/bin/activate # or myenv\Scripts\activate on Windows
# Install dev dependencies
pip install -r requirements.txt
playwright install chromium
# Run tests (if available)
pytest tests/📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
版权所有(c)2025 ADARSH MAURYA
⚠️ 免责声明
此工具用于 仅用于教育和研究目的.使用此刮刀时:
- ✅ 尊重谷歌地图服务条款
- ✅ 实施速率限制(不要刮得太快)
- ✅ 出于合法商业目的负责任地使用
- ✅ 遵守GDPR、CCPA和数据保护法
- ❌ 不要用于垃圾邮件或未经请求的营销
- ❌ 不要让谷歌的服务器过载
作者不对误用此工具负责。
📞 联系与支持
- 作者:阿达尔什·毛里亚
- GitHub: @4darsh Dev
- 仓库: 潜在客户生成器mcp服务器
问题和Bug
发现bug了吗?有功能请求吗? 打开一个问题
______________________________________________________________________
⭐ 标记此存储库 如果你觉得有帮助的话!
由...制作❤️ 通过 阿达什·毛里亚
