Condor2026/Diabolic_Canarias
GitHub: Condor2026/Diabolic_Canarias
一款针对加那利群岛数字报纸的被动 OSINT 工具,通过自动抓取、分类和关联分析事件新闻来检测犯罪模式。
Stars: 0 | Forks: 0
# Diabolic Canarias
[](https://github.com/Condor2026/Diabolic_Canarias)
[](https://termux.com)
[](https://linux.org)
[](https://es.wikipedia.org/wiki/Web_scraping)








**DIABOLIC Canarias** 是一款被动与分析性的 OSINT 工具,用于监控**加那利群岛的数字报纸**(特内里费岛、大加那利岛、兰萨罗特岛、富埃特文图拉岛、拉帕尔马岛、拉戈梅拉岛、耶罗岛),以检测、分类和可视化犯罪模式。
它不存储个人数据,仅保存标题、日期和各岛屿的位置信息。核心理念:*"能力越大,责任越大"*。
## 📌 目录
- [🔍 DIABOLIC 是做什么的?](#-qué-hace-diabolic)
- [⚙️ 核心功能](#️-características-clave)
- [🛠️ 技术与架构](#️-tecnología-y-arquitectura)
- [📥 安装与使用](#-instalación-y-uso)
- [🖥️ 终端模式(10 个命令)](#️-modo-terminal-10-comandos)
- [🌐 交互式 Web 模式](#-modo-web-interactivo)
- [🗺️ 监控来源](#️-fuentes-monitorizadas)
- [🏝️ 覆盖岛屿](#️-islas-cubiertas)
- [🧠 OSINT 类型与方法论](#-tipo-de-osint-y-metodología)
- [⚖️ 道德、法律与数据保护](#️-ética-legalidad-y-protección-de-datos)
- [🤝 贡献与未来](#-contribuciones-y-futuro)
- [📜 许可证](#-licencia)
## 🔍 DIABOLIC 是做什么的?
DIABOLIC 自动化了从加那利群岛当地和区域媒体**抓取事件新闻**的过程。无需每天阅读数十份报纸,该工具可以:
- **提取**与犯罪相关的新闻标题、日期、来源和地理位置(岛屿)。
- **分类**将事件分为不同类别(盗窃、诈骗、毒品、暴力、谋杀、旅游非法侵入等)。
- **存储**数据以 JSON 格式保存在本地,不保存任何个人数据。
- **分析**时间趋势(7、30、90 天)以及按岛屿和犯罪类型进行的分布。
- **检测**事件之间的关联:相同区域、相近日期、相同的作案手法可能指向同一个团伙。
- **可视化**通过带有柱状图和动态过滤器的交互式 Web 界面展示结果。
- **导出**数据为 CSV 或 JSON 以供外部分析。
## ⚙️ 核心功能
### 🔁 User‑Agent 轮换
通过在每次请求中模拟不同的浏览器和版本来避免被报纸网站封锁。
### 🧠 智能分页
自动尝试多达 12 种不同的分页格式(`/pagina/2`、`?page=2`、`?offset=2` 等),并记住对每个域名有效的格式。
### 🔎 自动 URL 检测器
如果报纸的 URL 失效,系统会自动寻找替代路径(`/sucesos`、`/local`、`/tribunales`、`/actualidad/sucesos` 等)并更新配置。
### 📊 高级犯罪分类
使用广泛的关键词列表,包括加那利当地的俚语(例如,虽然不是犯罪,但可以结合 *"guagua"* 的语境;同时支持添加诸如 *"alunicero"*、*"butrón"*、*"peta"* 等术语)。该列表易于扩展。
### 🔗 事件之间的关联
- **按类型和岛屿**(例如:7 天内在特内里费岛发生 5 起盗窃案)。
- **按作案手法**(检测如“alunicero”或“butrón”等词汇的重复出现)。
- **时间频率**(事件/天)。
### 🌐 交互式 Web 界面
- 按岛屿和犯罪类型显示柱状图。
- 按时间段过滤(过去 7、30、90 天)。
- 最近 20 起事件的列表。
- 用于更新数据和导出 JSON/CSV 的按钮。
### 🖥️ 完整的终端菜单
包含 10 个命令,无需打开浏览器即可执行所有功能。
## 🛠️ 技术与架构
- **语言**:Python 3.8+
- **Web 框架**:Flask(轻量级服务器)
- **抓取**:Requests + BeautifulSoup4
- **存储**:本地 JSON(无外部数据库)
- **模块化结构**:
- `DetectorURLs`:负责验证和修正报纸的 URL。
- `GestorDatos`:加载、保存和处理事件。
- `ExtractorNoticias`:通过 User‑Agent 轮换和智能分页执行抓取。
- **终端颜色**:使用 ANSI 代码提供出色的视觉体验。
## 📥 安装与使用
### 要求
- Python 3.8 或更高版本。
- pip(Python 包管理器)。
### 手动安装
```
git clone https://github.com/Condor2026/Diabolic_Canarias
cd Diabolic_Canarias
pip install -r requirements.txt
python Diabolic_Canarias.py
```
### 自动安装(Termux / Linux)
```
chmod +x install.sh
./install.sh
```
### 运行
启动时,将显示一个信息横幅并提示选择:
- **1** → 终端模式(10 个命令)。
- **2** → Web 模式(服务器位于 `http://localhost:5015`)。
## 🖥️ 终端模式(10 个命令)
进入主菜单后,你可以执行以下选项:
| 命令 | 功能 |
|---------|---------|
| `[1]` | 🔍 搜索新闻(带有自动 URL 检测) |
| `[2]` | 📊 查看完整分析(趋势、分布) |
| `[3]` | 🔗 查看事件之间的关联(模式和团伙) |
| `[4]` | 📈 查看每月演变趋势 |
| `[5]` | 🌐 启动 Web 服务器 |
| `[6]` | 📰 查看最近 20 起事件 |
| `[7]` | 📥 导出数据(JSON/CSV) |
| `[8]` | 🔍 验证报纸(自动 URL 检测器) |
| `[9]` | 📊 按类型查看分布(带有 ASCII 图表) |
| `[10]` | 🗑️ 退出 |
每个选项都与本地数据进行交互,让你无需打开浏览器即可探索模式。
## 🌐 交互式 Web 模式
在启动时选择选项 `[2]`,将启动一个本地 Flask 服务器。你可以通过浏览器进行以下操作:
- 查看全局统计数据(总数、过去 7/30/90 天)。
- 按时间段过滤。
- 查看按岛屿和类型分布的事件柱状图。
- 查询最近 20 起事件的列表。
- 直接从网页更新数据库(点击 **ACTUALIZAR** 按钮)。
- 导出为 JSON 或 CSV。
该界面已针对移动设备和桌面设备进行了优化。
## 🗺️ 监控来源
该工具包含来自所有岛屿的数字报纸,其中包括:
- **特内里费岛**:Diario de Avisos, El Día, El Español – Canarias, Canarias7, La Opinión de Tenerife, El Periódico de Tenerife 等。
- **大加那利岛**:Canarias7(大加那利岛版)、La Provincia、InfoNorte Digital、El Periódico de Gran Canaria。
- **兰萨罗特岛**:Diario de Lanzarote、Lancelot Digital、La Voz de Lanzarote。
- **富埃特文图拉岛**:Diario de Fuerteventura、Fuerteventura Digital、Noticias Fuerteventura。
- **拉帕尔马岛**:El Time、La Palma Ahora、El Apurón。
- **拉戈梅拉岛**:La Voz de La Gomera、Gomera Noticias。
- **耶罗岛**:El Hierro Digital、El Periódico de El Hierro。
自动 URL 检测器负责修正地址中的更改。完整列表可以在代码的 `PERIODICOS_BASE` 文件中查看和扩展。
## 🏝️ 覆盖岛屿
- 特内里费岛 (Tenerife)
- 大加那利岛 (Gran Canaria)
- 兰萨罗特岛 (Lanzarote)
- 富埃特文图拉岛 (Fuerteventura)
- 拉帕尔马岛 (La Palma)
- 拉戈梅拉岛 (La Gomera)
- 耶罗岛 (El Hierro)
## 🧠 OSINT 类型与方法论
DIABOLIC 被归类为**被动与分析型 OSINT**:
- **被动**:因为它对报纸系统的操作不会超出普通用户的 HTTP 请求范围。它不执行注入、不破坏访问权限、不使用凭证。
- **分析型**:因为它不仅限于收集信息;它还会处理数据以提取**地理模式(岛屿)、时间模式(每日、每月的演变)和关系模式(事件之间的关联)**。
### 工作流程
1. **获取**:在遵守等待时间和 user-agent 的前提下,下载每份报纸的事件页面。
2. **解析**:提取标题、日期,并通过关键词匹配检测位置(岛屿)。
3. **分类**:根据关键词为每个事件标记犯罪类型。
4. **存储**:将元数据保存在本地 JSON 文件中,不包含个人数据。
5. **分析**:生成统计数据、时间模式和关联。
6. **可视化**:在终端或网页上展示结果。
### 关联检测(选项 3)
- 将过去 30 天内的事件按 **类型 + 岛屿** 分组。
- 如果在同一岛屿上有 **3 起或更多** 同类型的案件,它会将其作为一种模式显示并计算频率(事件/天)。
- 搜索作案手法的特定关键词(`alunicero`、`butrón`、`escalo` 等),并将共享相同手法的事件进行分组,从而推测可能的团伙。
## ⚖️ 道德、法律与数据保护
### 法规遵从
- **GDPR / LOPDGDD(西班牙数据保护法)**:DIABOLIC 不处理个人数据。它仅存储元数据(标题、日期、岛屿、类型、来源)。因此,它不在这些法律的适用范围内。
- **知识产权**:它不完整转载新闻内容;仅提取标题和元数据。发出的请求与人类读者相同,并尊重 `robots.txt` 和速率限制。
### 道德原则
- **透明度**:开源代码,任何人都可以审计它的操作和存储内容。
- **不进行监视**:不对个人进行侧写,也不存储可能识别个人身份的信息。
- **责任**:用户对工具的使用方式负全部责任。启动横幅包含警告和“蜘蛛侠”理念(即:能力越大,责任越大)。
### 免责声明
本工具按“原样”提供,不保证不间断运行。任何引入有害功能(收集个人数据、暗中监视)的修改均由修改者承担全部责任。
## 📜 许可证
本项目基于 **GNU General Public License v3.0 (GPLv3)** 许可证。
这意味着:
- 你可以自由地使用、研究、分享和修改该软件。
- 如果你分发修改后的版本,**必须使用相同的许可证**。
- **你不能将该软件变成闭源专有软件**;任何衍生作品都必须保持开源。
- 本软件按“原样”提供,不提供任何保证(查看 [`LICENSE`](LICENSE) 文件了解更多详情)。
请查看 `LICENSE` 文件获取完整的许可证文本。
⭐ **如果 DIABOLIC 对你有帮助,请考虑在仓库中留下 Star 并分享该项目。让我们共同让 OSINT 变得更符合道德且触手可及!**
标签:ESC4, FOFA, OSINT, Python, 代码示例, 字符串匹配, 数据分析, 新闻监控, 无后门, 犯罪分析, 逆向工具