GeiserX/search-by-surname

GitHub: GeiserX/search-by-surname

基于 R 语言的西班牙公共电话簿批量搜索工具,支持性别感知的姓氏变体生成和多目录服务并行查询。

Stars: 0 | Forks: 0

search-by-surname banner

R >= 3.6 License: GPL-3.0 Platform Status: Archived

一个基于 R 的工具,用于按姓氏批量搜索西班牙公共电话簿。它抓取姓氏列表,生成考虑性别差异的变体,为多个目录服务构建搜索 URL,并将其写入批处理文件以便进行系统化查询。 最初编写于 COVID-19(2020 年)初期,并于 2025 年公开发布。 ## 功能特性 - **多服务支持** -- 同时查询 Guiatel/Infobel 和 ABCtelefonos 目录服务。 - **考虑性别差异的姓氏变体** -- 根据斯拉夫命名惯例自动生成姓氏的女性形式(例如,为以 `-v` 结尾的姓氏追加 `-a`)。 - **批处理文件生成** -- 将搜索 URL 拆分为编号的批处理文件,以方便手动查询并避免速率限制。 - **多区域覆盖** -- 单次运行即可覆盖西班牙的六个省份/地区。 - **Web 抓取流水线** -- 使用 `rvest` 直接从 Web 源提取姓氏列表和目录索引。 ## 环境要求 | 依赖项 | 版本 | 用途 | |---|---|---| | [R](https://www.r-project.org/) | >= 3.6 | Runtime(运行环境) | | [tidyverse](https://www.tidyverse.org/) | latest(最新版) | 数据处理和功能工具 | | [rvest](https://rvest.tidyverse.org/) | latest(最新版) | HTML 解析和 Web 抓取 | | [stringi](https://stringi.gagolewski.com/) | latest(最新版) | 字符串处理和子字符串操作 | 在 R 中安装所有依赖项: ``` install.packages(c("tidyverse", "rvest", "stringi")) ``` ## 使用方法 1. 克隆仓库: ``` git clone https://github.com/GeiserX/search-by-surname.git cd search-by-surname ``` 2. 打开 `search.R` 并调整 `write_lines()` 调用中的输出路径,以匹配您的本地目录结构。默认情况下,脚本写入 Google Drive 下的 Windows 路径。 3. 在 R 或 RStudio 中运行脚本: ``` source("search.R") ``` 脚本将执行以下操作: - 从配置的 Web 源抓取姓氏列表。 - 生成考虑性别差异的姓氏变体。 - 为每个姓氏和地区构建搜索 URL。 - 将编号的批处理文件写入指定的输出目录。 ## 覆盖地区 | 地区 | Guiatel/Infobel | ABCtelefonos | |---|---|---| | Zaragoza | 是 | 是 | | Murcia | 是 | 是 | | Granada | 是 | 是 | | Asturias | 是 | 是 | | Almeria | 是 | 是 | | Albacete | 是 | 是 | ## 数据来源 - **姓氏列表** -- 从包含姓氏数据库的公开 Wiki 页面抓取。 - **Guiatel / Infobel** -- 西班牙白页电话簿(`blancas.paginasamarillas.es`)。 - **ABCtelefonos** -- 独立的西班牙电话簿(`abctelefonos.com`)。 ## 限制 - 输出路径是硬编码的,运行前必须手动调整。 - Guiatel/Infobel 的 URL 构建在源代码中被注释掉了;它需要取消注释,并且如果自 2020 年以来该服务更改了其 URL 结构,则可能需要更新。 - 无内置速率限制或请求限制——批处理文件旨在供手动使用。 - 姓氏来源专门针对保加利亚姓氏;若要适应其他来源,需要更改抓取源。 - 自脚本最初编写以来,目标目录服务可能已更改其结构、增加了 CAPTCHA 验证或已关闭。 ## 法律与道德声明 此工具查询**公开可用**的电话簿服务。其提供 strictly for educational and research purposes(严格用于教育和研究目的)。用户有责任遵守所有适用法律及被查询平台的服务条款。作者不对滥用行为承担任何责任。 对目录服务的自动抓取可能违反其服务条款。请负责任地使用,并自行承担风险。 ## 许可证 本项目采用 [GNU General Public License v3.0](LICENSE) 许可。
标签:ESC4, ESC8, OSINT, rvest, R语言, tidyverse, URL抓取, Web抓取, 姓氏检索, 性别识别, 批量URL生成, 批量搜索, 数据抓取, 斯拉夫语系命名, 社会工程学, 西班牙电话簿