Metadata-Version: 2.4
Name: qcc-phone-lookup
Version: 0.5.8
Summary: 企查查号码查企业 — WorkBuddy 销售场景：扫码登录 + 号码查公司名/统一社会信用代码 + 入库 localCRM
Author: yuxia
License-Expression: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: playwright>=1.40.0

# qcc-phone-lookup

企查查号码查企业 — 销售在手机 WorkBuddy 里，发一张带号码的照片/截图或一串号码，
自动查出对应的**公司名称 + 统一社会信用代码**，并入库 localCRM。

---

## 部署指南（WorkBuddy 里操作）

### 第一步：安装（只做一次）

WorkBuddy / 手机沙箱 / 任何首次安装环境，**只跑一条**：

```bash
qcc-setup
```

内部自动按顺序完成：升级 pip 包 → 下载 Chromium → 检测系统装 xvfb（Termux / Ubuntu / Alpine / CentOS 都自动识别）→ 调 `qcc-doctor` 验证。任何一步失败会打印具体失败原因和修复命令，不会静默吞错。

装完直接进入第二步。

### 第二步：装技能（只做一次）

把本仓库里的 `qcc_phone_lookup/skills/qcc-phone-lookup/SKILL.md` 内容发给主智能体，
让它保存为技能目录下的 `qcc-phone-lookup/SKILL.md`（例如 `~/.workbuddy/skills/qcc-phone-lookup/SKILL.md`，
具体路径以 workbuddy 技能目录为准）。

### 第三步：登录企查查（只做一次）

在 workbuddy 里说：

> 登录企查查

它会执行 `qcc-login-qr` 生成二维码（`browser_data/qrcode.png`），
把二维码发给你 → 用企查查 App / 微信扫一下 → 告诉它扫完了，
它执行 `qcc-login-confirm` 保存登录态。看到 `登录态已保存` 就成功了。

登录态存在当前目录的 `browser_data/`，workspace 持久，之后不用重复登录（过期再扫一次）。

### 第四步：日常使用

在钉钉里给机器人：

- **发一张带号码的照片/截图** → 自动识别号码并查询
- **直接发一串号码** → 直接查询

查到后返回公司名称 + 统一社会信用代码，并入库 localCRM。
一个号码对应多家公司时会让你确认是哪一家。

---

## 日常操作总结

| 做什么 | 怎么做 | 多久一次 |
|--------|--------|----------|
| 查号码是哪家公司 | 钉钉里发号码/照片 | 每天 |
| 登录过期了 | 跟它说"登录企查查"，重新扫码 | 偶尔 |
| 查工商信息 | 提供企查查 API Key 给它 | 需要时 |

---

## 手动命令参考

```bash
qcc-login-qr          # 生成登录二维码（截图即返回，浏览器保持存活）
qcc-login-confirm     # 扫码后确认登录，保存登录态
qcc-lookup 13800138000  # 查询号码对应的企业，输出 JSON
qcc-login             # 一步式登录（= 上面两条合一）
qcc-doctor            # 环境体检（playwright / chromium / xvfb）
qcc-setup             # 一键安装（pip + chromium + xvfb + doctor 验证）
```

**注意：所有命令必须在同一个工作目录下执行**，登录态在 `./browser_data/`。

---

## 常见问题

**Q: 提示"未找到登录态"？**
A: 还没登录或登录过期了，走第三步重新扫码。

**Q: 查询返回空结果？**
A: 确认号码是纯数字、没打错；再确认登录态没过期。

**Q: 登录页返回 405 / 装好之后跑不起来？**
A: 先跑 `qcc-doctor`，它会告诉你缺 playwright / chromium / xvfb 还是 DISPLAY 没设置。按提示装好即可。

**Q: xvfb 装哪一版？**
A: 各平台包名都是 `xvfb`（Termux: `pkg install xvfb` / Ubuntu: `apt install xvfb` / Alpine: `apk add xvfb`）。装完用 `which xvfb-run` 验证。

**Q: 可以用 headless（无头）登录吗？**
A: 不行。登录已强制 headed 模式（headless 会被企查查 405 风控拦截）。手机等无显示环境必须先装 xvfb（Termux: `pkg install xvfb` / Ubuntu: `apt install xvfb` / Alpine: `apk add xvfb`，或直接 `qcc-setup` 一键安装）。查询（`qcc-lookup`）仍是无头复用登录态，不受影响。

**Q: 查询被企查查风控拦截（405）？**
A: 查询太频繁了，隔几分钟再试；持续被拦就重新扫码登录。

**Q: 换了工作目录就提示没登录？**
A: 登录态存在原目录的 `browser_data/`，回到原目录执行命令即可。

---

## 开发者

本地构建：

```bash
pip install build
python -m build          # 产出在 dist/
pip install dist/qcc_phone_lookup-0.5.2-py3-none-any.whl
```

## License

MIT
