mirror of
https://github.com/NanmiCoder/MediaCrawler.git
synced 2026-05-09 03:57:43 +08:00
refactor(database): 调整数据库模块位置、调整初始化arg名称,并更新文档
- 将 db.py 数据库模块移入‘database/‘中,并修正所有调用代码 - 将初始化参数 `--init-db` 改为 `--init_db` - 更新相关文档说明
This commit is contained in:
@@ -54,15 +54,19 @@
|
||||
python main.py --help
|
||||
```
|
||||
|
||||
## 数据保存
|
||||
- 支持关系型数据库Mysql中保存(需要提前创建数据库)
|
||||
- 执行 `python db.py` 初始化数据库数据库表结构(只在首次执行)
|
||||
- 支持轻量级SQLite数据库保存(无需额外安装数据库服务器)
|
||||
- 本地文件数据库,适合个人使用和小规模数据存储
|
||||
- 使用参数 `--save_data_option sqlite` 启用SQLite存储
|
||||
- 数据库文件自动创建在项目目录下(schema/sqlite_tables.db)
|
||||
- 支持保存到csv中(data/目录下)
|
||||
- 支持保存到json中(data/目录下)
|
||||
## 💾 数据存储
|
||||
|
||||
支持多种数据存储方式:
|
||||
- **CSV 文件**: 支持保存至 CSV (位于 `data/` 目录下)
|
||||
- **JSON 文件**: 支持保存至 JSON (位于 `data/` 目录下)
|
||||
- **数据库存储**
|
||||
- 使用 `--init_db` 参数进行数据库初始化 (使用 `--init_db` 时,无需其他可选参数)
|
||||
- **SQLite 数据库**: 轻量级数据库,无需服务器,适合个人使用 (推荐)
|
||||
1. 初始化: `--init_db sqlite`
|
||||
2. 数据存储: `--save_data_option sqlite`
|
||||
- **MySQL 数据库**: 支持保存至关系型数据库 MySQL (需提前创建数据库)
|
||||
1. 初始化: `--init_db mysql`
|
||||
2. 数据存储: `--save_data_option db` (db 参数为兼容历史更新保留)
|
||||
|
||||
## 免责声明
|
||||
> **免责声明:**
|
||||
|
||||
@@ -2,36 +2,70 @@
|
||||
|
||||
```
|
||||
MediaCrawler
|
||||
├── base
|
||||
│ └── base_crawler.py # 项目的抽象类
|
||||
├── browser_data # 换成用户的浏览器数据目录
|
||||
├── config
|
||||
│ ├── account_config.py # 账号代理池配置
|
||||
├── base
|
||||
│ └── base_crawler.py # 项目的抽象基类
|
||||
├── cache
|
||||
│ ├── abs_cache.py # 缓存抽象基类
|
||||
│ ├── cache_factory.py # 缓存工厂
|
||||
│ ├── local_cache.py # 本地缓存实现
|
||||
│ └── redis_cache.py # Redis缓存实现
|
||||
├── cmd_arg
|
||||
│ └── arg.py # 命令行参数定义
|
||||
├── config
|
||||
│ ├── base_config.py # 基础配置
|
||||
│ └── db_config.py # 数据库配置
|
||||
├── data # 数据保存目录
|
||||
├── libs
|
||||
│ ├── db_config.py # 数据库配置
|
||||
│ └── ... # 各平台配置文件
|
||||
├── constant
|
||||
│ └── ... # 各平台常量定义
|
||||
├── database
|
||||
│ ├── db.py # 数据库ORM,封装增删改查
|
||||
│ ├── db_session.py # 数据库会话管理
|
||||
│ └── models.py # 数据库模型定义
|
||||
├── docs
|
||||
│ └── ... # 项目文档
|
||||
├── libs
|
||||
│ ├── douyin.js # 抖音Sign函数
|
||||
│ └── stealth.min.js # 去除浏览器自动化特征的JS
|
||||
│ ├── stealth.min.js # 去除浏览器自动化特征的JS
|
||||
│ └── zhihu.js # 知乎Sign函数
|
||||
├── media_platform
|
||||
│ ├── douyin # 抖音crawler实现
|
||||
│ ├── xhs # 小红书crawler实现
|
||||
│ ├── bilibili # B站crawler实现
|
||||
│ └── kuaishou # 快手crawler实现
|
||||
├── modles
|
||||
│ ├── douyin.py # 抖音数据模型
|
||||
│ ├── xiaohongshu.py # 小红书数据模型
|
||||
│ ├── kuaishou.py # 快手数据模型
|
||||
│ └── bilibili.py # B站数据模型
|
||||
│ ├── bilibili # B站采集实现
|
||||
│ ├── douyin # 抖音采集实现
|
||||
│ ├── kuaishou # 快手采集实现
|
||||
│ ├── tieba # 百度贴吧采集实现
|
||||
│ ├── weibo # 微博采集实现
|
||||
│ ├── xhs # 小红书采集实现
|
||||
│ └── zhihu # 知乎采集实现
|
||||
├── model
|
||||
│ ├── m_baidu_tieba.py # 百度贴吧数据模型
|
||||
│ ├── m_douyin.py # 抖音数据模型
|
||||
│ ├── m_kuaishou.py # 快手数据模型
|
||||
│ ├── m_weibo.py # 微博数据模型
|
||||
│ ├── m_xiaohongshu.py # 小红书数据模型
|
||||
│ └── m_zhihu.py # 知乎数据模型
|
||||
├── proxy
|
||||
│ ├── base_proxy.py # 代理基类
|
||||
│ ├── providers # 代理提供商实现
|
||||
│ ├── proxy_ip_pool.py # 代理IP池
|
||||
│ └── types.py # 代理类型定义
|
||||
├── store
|
||||
│ ├── bilibili # B站数据存储实现
|
||||
│ ├── douyin # 抖音数据存储实现
|
||||
│ ├── kuaishou # 快手数据存储实现
|
||||
│ ├── tieba # 贴吧数据存储实现
|
||||
│ ├── weibo # 微博数据存储实现
|
||||
│ ├── xhs # 小红书数据存储实现
|
||||
│ └── zhihu # 知乎数据存储实现
|
||||
├── test
|
||||
│ ├── test_db_sync.py # 数据库同步测试
|
||||
│ ├── test_proxy_ip_pool.py # 代理IP池测试
|
||||
│ └── ... # 其他测试用例
|
||||
├── tools
|
||||
│ ├── utils.py # 暴露给外部的工具函数
|
||||
│ ├── crawler_util.py # 爬虫相关的工具函数
|
||||
│ ├── slider_util.py # 滑块相关的工具函数
|
||||
│ ├── time_util.py # 时间相关的工具函数
|
||||
│ ├── easing.py # 模拟滑动轨迹相关的函数
|
||||
| └── words.py # 生成词云图相关的函数
|
||||
├── db.py # DB ORM
|
||||
├── main.py # 程序入口
|
||||
├── var.py # 上下文变量定义
|
||||
└── recv_sms_notification.py # 短信转发器的HTTP SERVER接口
|
||||
│ ├── browser_launcher.py # 浏览器启动器
|
||||
│ ├── cdp_browser.py # CDP浏览器控制
|
||||
│ ├── crawler_util.py # 爬虫工具函数
|
||||
│ ├── utils.py # 通用工具函数
|
||||
│ └── ...
|
||||
├── main.py # 程序入口, 支持 --init_db 参数来初始化数据库
|
||||
├── recv_sms.py # 短信转发HTTP SERVER接口
|
||||
└── var.py # 全局上下文变量定义
|
||||
```
|
||||
Reference in New Issue
Block a user