first commit
This commit is contained in:
44
README.md
Normal file
44
README.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# py-chan · 缠论《教你炒股票》抓取器
|
||||
|
||||
抓取 [kline8.com/chanlun](https://www.kline8.com/chanlun?p=0) 上缠中说禅
|
||||
《教你炒股票》系列全部 108 课原文,转换为结构化数据,并直接写入 Vue 阅读站
|
||||
[`D:\code\chan`](../chan),在 `http://localhost:5173/chanlun` 展示。
|
||||
|
||||
> `p=0` 是目录页,`p=1`…`p=108` 依次对应第 1~108 课。
|
||||
|
||||
## 依赖
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
## 使用
|
||||
|
||||
```bash
|
||||
python main.py # 全量抓取(带缓存,可重复运行)
|
||||
python main.py --limit 3 # 仅抓前 3 篇,联调测试
|
||||
python main.py --refresh # 忽略缓存重新抓取
|
||||
python main.py --no-images # 不下载图片,正文保留远程链接
|
||||
```
|
||||
|
||||
## 产物
|
||||
|
||||
| 路径 | 说明 |
|
||||
| --- | --- |
|
||||
| `data/raw/p001.html …` | 原始 HTML 归档 |
|
||||
| `data/markdown/ke-001.md …` | 每篇 Markdown 归档 |
|
||||
| `data/articles.json` | 全量结构化数据 |
|
||||
| `D:\code\chan\src\data\chanlun.ts` | Vue 数据源(首次运行会自动备份示例为 `chanlun.sample.ts`) |
|
||||
| `D:\code\chan\public\chanlun-img\…` | 本地化图片 |
|
||||
|
||||
## 模块
|
||||
|
||||
- `config.py` —— 站点、请求、产物路径等常量
|
||||
- `fetcher.py` —— 带限速 / 重试 / SSL 回退的 HTTP 抓取
|
||||
- `parser.py` —— 目录页与文章页解析,产出 `Article` 结构
|
||||
- `converter.py` —— 正文 HTML → Markdown(含行内样式与图片)
|
||||
- `writer.py` —— 图片本地化、TS 数据文件、JSON 输出
|
||||
- `main.py` —— 命令行入口与编排
|
||||
|
||||
抓取后到 `D:\code\chan` 运行 `pnpm dev`,访问 `http://localhost:5173/chanlun`
|
||||
即可看到全部 108 课;点击任意一篇进入沉浸式阅读页。
|
||||
Reference in New Issue
Block a user