跳到正文
← 技术博客

我做了个光伏支架海外客户挖掘工具

PythonPlaywright外贸工具

做外贸最费时间的不是谈客户,而是找到对的客户。

光伏支架(PV Mounting / Solar Racking)出口的目标客户,大多是东南亚、欧洲那些做安装与分销的小公司——它们没什么名气、规模不大,却正是最可能下单的人。手工在谷歌地图上一家一家翻,一天也就能整理几十家,还要自己抄电话、翻官网找邮箱。于是我写了这个工具,把整条链路自动化了。

它做什么

一句话流程:

谷歌地图搜索 → 电话 / 网站抓取 → 官网邮箱 + WhatsApp + 领英补全 → 私人手机判定 → 小规模判定 → 导出 Excel / CSV

谷歌地图批量搜索运行实况

核心能力

1. 批量搜索 + 完整国家库

内置 217 个国家 / 地区(按 7 大洲分组),支持多语言关键词逐条搜索。在图形客户端里按洲勾选即可,默认不勾选任何国家,避免一不留神跑满全球。

2. 联系方式自动补全

谷歌地图一般不直接给邮箱。工具会访问公司官网首页与常见联系页(/contact、/kontakt、/contacto、/contatti 等),正则提取邮箱并评分,优先返回 info@ / sales@ / contact@ 以及和官网同域名的邮箱;再从官网里找 wa.me 链接拿 WhatsApp,并用搜索定位公司公开的领英主页。

3. 私人手机 vs 企业座机

按可信度判定号码性质:官网出现 wa.me/... 几乎必是私人手机(最高可信);其次是按各国手机号段前缀判定;识别不了的标「未知」交人工。只做号码性质分类,不抓取任何未公开的私人数据。

4. 小规模客户判定

用加权评分给结论,而不是拍脑袋:

信号权重
领英员工数 ≤ 50 / 51–200+3 / +2
领英员工数 > 200 / > 1000−3 / −5
命中光伏大厂品牌(品牌方或分支)−4
官网自称上市公司−5
电话是私人手机 / 仅企业座机+2 / −1
官网显示多国 / 全球布局−2

总分 ≤ −2 判「不是」,其余判「是」并附判定依据与置信度。宁可多留几条标低置信度,也不误杀真客户——导出表按「是」优先排序。

技术栈

Python · Playwright · Flask · SQLite · openpyxl

  • Playwright 驱动真实浏览器抓取,配合 .chrome_profile 复用登录态,大幅降低验证码与封禁概率;
  • SQLite 做去重与断点续跑——跑到一半中断,下次接着跑;
  • Flask + 图形客户端(gui.py):双击 run_gui.bat 就能用,界面上的配置自动写回 config.yaml;
  • 防封参数:指纹伪装、拟人化操作、限速,全部可在 config.yaml 里调。

工程结构

pv-mounting-leads/
├── main.py                 # 编排入口(搜索 → 补全 → 导出)
├── gui.py                  # 图形客户端
├── config.yaml             # 所有目标配置都改这里
└── leadgen/
    ├── maps_scraper.py     # 谷歌地图爬取
    ├── enricher.py         # 官网邮箱 / WhatsApp / 领英补全
    ├── phone_rules.py      # 私人手机 vs 企业座机判定
    ├── sizer.py            # 小规模客户判定
    ├── store.py            # SQLite 去重 + 断点续跑
    └── export.py           # 导出 CSV / XLSX

一点说明

这是一个自用的生产力工具,不是公开服务——它依赖本地浏览器、登录态和长时运行,并不适合对外提供使用。写它最大的收获,是把「找客户」这件重复劳动真正交给了代码:配置好关键词和国家,剩下的事它自己跑,我只管看表格。

如果你也在做光伏 / 新能源出海,欢迎交流。