GeiserX/BuscaPaginasBlancas

GitHub: GeiserX/BuscaPaginasBlancas

专门针对西班牙白页的OSINT工具,用于从paginasamarillas.es批量提取姓名、电话、地址等公开联系信息并自动去重存储。

Stars: 0 | Forks: 0

BuscaPaginasBlancas Banner

Python 3.x License: LGPL-3.0 GitHub Stars GitHub Issues

用于从西班牙白页(Paginas Blancas)提取联系信息的 Python OSINT 工具

## 关于 **BuscaPaginasBlancas** 是一个命令行 OSINT(开源情报)工具,用于查询托管在 `paginasamarillas.es` 上的西班牙白页目录(Paginas Blancas)。给定一个姓氏列表,它会系统地提取公开列出的联系信息——姓名、电话号码和地址——并将结果存储在本地 SQLite 数据库中,同时自动进行去重。 该工具在设计时考虑了西班牙的命名习惯:它支持针对第一姓氏(`apellido1`)和第二姓氏(`apellido2`)字段进行查询,并自动生成女性姓氏变体(附加 `-a`)以最大化覆盖范围。 ## 功能 - **双姓氏字段支持** —— 同时查询 `apellido1` 和 `apellido2` 字段,反映了西班牙的双姓氏系统。 - **性别感知的姓氏变体** —— 自动生成姓氏的女性形式(例如 `Petrov` / `Petrova`)以扩展搜索结果。 - **带去重功能的 SQLite 存储** —— 所有结果都持久化到本地 `paginasblancas.db` 文件中。电话号码作为主键以防止重复。 - **批处理** —— 接受批量姓氏列表并按顺序处理。 - **轻量级依赖** —— 除了 Python 标准库外,仅需要 `requests` 和 `BeautifulSoup4`。 ## 法律和道德考量 此工具访问的是公开可用的目录数据。然而,用户需对其使用方式承担全部责任。在运行此工具之前,请考虑以下几点: - **GDPR / LOPDGDD** —— 西班牙的个人数据受欧盟《通用数据保护条例》和西班牙《数据保护与数字权利保障组织法》的保护。在没有合法依据的情况下,批量收集、存储或重新分发个人数据可能构成违规。 - **服务条款** —— 自动抓取可能违反 `paginasamarillas.es` 的服务条款。使用前请查阅其 ToS。 - **负责任的使用** —— 此工具仅用于合法的 OSINT 研究、新闻调查或个人使用。请勿将其用于骚扰、跟踪、未经请求的营销或任何侵犯个人隐私权的目的。 - **速率限制** —— 请尊重目标服务。过多的请求可能导致 IP 被封禁并造成中断。 **作者对滥用本工具的行为不承担任何责任。** ## 安装 ``` git clone https://github.com/GeiserX/BuscaPaginasBlancas.git cd BuscaPaginasBlancas pip install -r requirements.txt ``` ### 需求 - Python 3.x - `requests` - `beautifulsoup4` ## 用法 该工具内置了一个姓氏列表(以保加利亚姓氏作为演示数据集)。要使用默认设置运行: ``` python3 crawler.py ``` ### 自定义姓氏列表 `crawler.py` 中的 `SearchSurnames()` 函数从外部维基页面获取姓氏。要使用您自己的列表,请修改此函数以返回包含姓氏字符串的 Python 列表: ``` def SearchSurnames(): return ["Garcia", "Martinez", "Lopez", "Fernandez"] ``` 或者,您可以按照 `cli.txt` 中的文档直接从命令行调用爬虫,将姓氏作为以空格分隔的参数传递。 ## 输出格式 结果存储在工作目录中名为 `paginasblancas.db` 的 SQLite 数据库文件中。其结构为: | Column | Type | Description | |---------------|------|--------------------------------------| | Nombre | TEXT | 名字 | | Apellido1 | TEXT | 第一姓氏(父姓) | | Apellido2 | TEXT | 第二姓氏(母姓) | | Telefono | TEXT | 电话号码(**PRIMARY KEY**) | | Calle | TEXT | 街道地址 | | CP | TEXT | 邮政编码 | | CiudadRegion | TEXT | 城市和地区 | 重复条目(按电话号码)通过 `INSERT OR IGNORE` 自动忽略。 ## 局限性 - **单一省份** —— 当前实现硬编码为查询 `Albacete`。要搜索其他省份,请修改 `apellido1()` 和 `apellido2()` 函数中的 `nomprov` 参数。 - **仅首页** —— 每次查询仅抓取结果的第一页。分页支持已在代码中预留但未激活。 - **无速率限制** —— 该工具不会限制请求。如果执行大规模查询,用户应实施延迟。 - **API 稳定性** —— 该工具依赖于 `paginasamarillas.es` 的 HTML 结构。网站的更改可能会导致解析失败。 ## 许可证 本项目采用 [GNU Lesser General Public License v3.0](LICENSE) 许可。
标签:ESC4, ESC8, OSINT, Paginas Blancas, Python, SQLite, URL抓取, Web爬虫, 人名搜索, 地址查询, 姓名变体生成, 数据抓取, 数据泄露, 数据自动去重, 无后门, 电话号码提取, 白页爬虫, 社会工程学, 联系方式挖掘, 西班牙黄页, 逆向工具, 隐私合规