ruijindev0801/Github_Scraper_2026

GitHub: ruijindev0801/Github_Scraper_2026

一款基于 Tkinter 的桌面应用,用于按地理位置和多维条件筛选 GitHub 用户,自动提取公开的邮箱、LinkedIn 和 Discord 等联系方式并导出至 CSV 或 Google Sheets。

Stars: 2 | Forks: 1

# GitHub Scraper 2026 一款基于 Tkinter 的桌面应用程序,用于根据位置和可选条件搜索公开的 GitHub 个人资料,并将结果导出为本地 CSV 文件或 Google Sheet。 ## 功能 - 根据必填的位置搜索 GitHub 用户 - 通过可选的关键词、创建日期、仓库数量和关注者数量条件缩小结果范围 - 根据性别(全部 / 男 / 女)筛选结果,该性别通过检测用户简介或个人资料 README 中明确的 `he/him` 或 `she/her` 代词得出 - 将个人资料详情导出到本地 CSV 文件或 Google Sheet - 在公开可用时,包含电子邮件、LinkedIn 和 Discord 详情 - 读取每个用户的 GitHub 个人资料 README,并从中提取电子邮件、LinkedIn 或 Discord 详情 - 在获取个人资料详情时跟踪进度 ## 要求 - Python 3.10+ - `aiohttp` - `customtkinter` - `google-api-python-client` 和 `google-auth`(仅当您需要服务帐号 Google Sheets 备用方案时才需要) ## 安装 ``` pip install aiohttp customtkinter ``` 如果要导出到 Google Sheets,还需安装: ``` pip install google-api-python-client google-auth ``` 如果您使用下面的 Apps Script Web App 方法,则不需要这些包。 ## 运行 ``` python main.py ``` ## 截图 ### Google Sheets 导出 ![GitHub Talent Scraper,已选择 Google Sheets 导出](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/e0fd24165f174120.png) ### 本地 CSV 导出 ![GitHub Talent Scraper,已选择本地 CSV 导出](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/6fdebe166b174121.png) ## Google Sheets 设置 ### 方法一:Apps Script Web App(推荐) 1. 打开您的目标 Google Sheet。 2. 转到 `扩展程序` -> `Apps Script`。 3. 将默认脚本替换为 Web App 处理程序。 4. 将其部署为 Web App。 5. 在部署设置中,使用实际的 `Web app` URL,并选择无需桌面应用程序登录即可访问的权限。 6. 在应用程序中,选择 `google sheet`,然后填写: - `Spreadsheet URL or ID`(电子表格 URL 或 ID) - `Worksheet Name`(工作表名称) - `Apps Script Web App URL`(Apps Script Web 应用 URL) 此方法不需要下载 JSON 密钥。 ### 方法二:服务帐号备用方案 1. 创建或选择一个 Google Cloud 项目。 2. 为该项目启用 Google Sheets API。 3. 创建服务帐号并下载其 JSON 密钥。 4. 将您的目标 Google Sheet 以编辑者身份与服务帐号电子邮件共享。 5. 在应用程序中,填写 `Service Account JSON` 而不是 Apps Script URL。 对于这两种方法,应用程序均接受完整的 Google Sheet URL 或仅电子表格 ID。 ## 导出列 这两种目标位置均使用相同的列: - `username` - `url` - `location` - `email` - `linkedin` - `discord` ## 注意事项 - GitHub token 是可选的,但建议提供以减少速率限制问题。 - `Location`(位置)是唯一必填的搜索字段。 - `Creation Date`(创建日期)必须使用 `YYYY-MM-DD` 格式。 - 最小和最大仓库/关注者字段必须为整数。 - 在 CSV 和 Google Sheets 导出中,均会跳过重复的用户名。 - 除了 GitHub 简介和博客字段外,还会检查个人资料 README 的内容。 - 当公开的简介/博客/README 文本匹配常见的 Discord URL 或用户名时,将从中提取 Discord 列。 - 性别过滤器会在简介和个人资料 README 中查找明确的代词(`he/him`、`he/they`、`she/her`、`she/they`、`him/his`、`her/hers`)。当选择 `Male` 或 `Female` 时,将跳过未检测到代词的个人资料;选择 `All` 可禁用此过滤器。 ## 项目结构 ``` main.py github_scraper/ exporter.py models.py scraper.py ui.py ``` ## 许可证 本项目基于 MIT 许可证授权。详情请参阅 [LICENSE](LICENSE)。
标签:aiohttp, Apps Script, CSV 导出, customtkinter, Discord 抓取, ESC4, GitHub API, GitHub 爬虫, Google API, Google Sheets 集成, HR 工具, IT 人才招聘, LinkedIn 抓取, OSINT, Python 桌面应用, Sourcer 工具, Tkinter, Web Scraper, 人才搜索, 候选人挖掘, 公开情报收集, 命令控制, 地理位置搜索, 开发者寻源, 开源社区招聘, 异步网络请求, 性别过滤, 技术招聘工具, 招聘自动化, 数据导出, 数据采集, 潜在客户生成, 程序员人脉, 简历解析, 逆向工具, 邮箱提取