🧩 我打造了一个隐私优先的 Chrome 扩展,用于从 LinkedIn 收集公开邮箱

发布: (2026年1月17日 GMT+8 19:37)
4 min read
原文: Dev.to

Source: Dev.to

在找工作和进行外联时,我一直遇到同样的问题:

很多 LinkedIn 帖子和个人资料已经把电子邮件地址直接展示出来了,但要找到它们既慢又重复。你要滚动页面,点击“查看更多”,复制一个邮箱,再继续滚动……如此循环。

我尝试过一些声称可以解决这个问题的工具,但它们大多存在以下至少一种问题:

  • 将数据发送到外部服务器
  • 需要账号或登录
  • 过度自动化,感觉不安全
  • 明显无法通过 Chrome Web Store 审核

于是我决定自己动手做一个小工具。ReachIn 就这样诞生了。

👉 Repo:

ReachIn 是什么(以及不是什麼)

它的功能

  • 仅在你明确点击按钮时工作
  • 滚动 LinkedIn 搜索结果页面
  • 展开可见内容
  • 提取页面上已经显示的电子邮件地址
  • 将所有数据本地存储在浏览器中
  • 让你复制结果或查看历史收集记录

做的事

  • 不进行后台抓取
  • 不访问凭证信息
  • 不进行分析或追踪
  • 不使用服务器
  • 不调用远程 API
  • 不自行运行自动化

从第一天起的隐私保护

Chrome 审核员更关注意图和数据处理方式,而不是华丽的功能。

我一开始就设定了几条不可妥协的规则:

  • 所有操作都在本地运行
  • 不发起网络请求
  • 一切都由用户操作触发
  • 行为可以用简洁的英文解释清楚

内部实现(高层概览)

ReachIn 是一个普通的 Manifest V3 Chrome 扩展。没有使用框架,也没有构建步骤。

目录结构如下:

├── assets/
│   ├── css/
│   │   └── popup.css
│   ├── js/
│   │   ├── background.js
│   │   ├── content.js
│   │   └── popup.js
│   ├── icons/
│   │   ├── icon-16.png
│   │   ├── icon-32.png
│   │   ├── icon-48.png
│   │   └── icon-128.png

├── popup.html
├── manifest.json

├── README.md
├── PRIVACY.md
├── LICENSE
└── .gitignore

工作流程很简单:

  • 弹出窗口控制所有操作。
  • 内容脚本仅在 linkedin.com 上运行。
  • 脚本只在用户操作后注入。
  • 数据使用 chrome.storage.local 存储。

内容脚本

内容脚本完成三件事:

  • 滚动页面
  • 在需要时点击“查看更多”
  • 从可见文本和 mailto: 链接中提取邮箱

仅此而已。

  • 不会在展开内容之外修改 DOM。
  • 不进行隐藏抓取。
  • 不在后台执行。

接下来的计划

我的路线图保持有意的保守:

  • 小幅 UX 改进
  • 性能调优
  • 可选的导出格式

如果你感兴趣,欢迎查看仓库:

👉

祝开发愉快。

Back to Blog

相关文章

阅读更多 »