# Crawl4AI 正文转 Markdown：去掉导航广告，保住代码块和参数表

Crawl4AI真实浏览器抓取localhost，fit Markdown保留代码与四行表格，移除导航广告；未调用LLM提取器。

## 环境

- Python 3.12+；在 reference 中 pip install -r requirements.txt。
- 把CHROME_BIN设为你自己的Chromium可执行文件；verify.py启动隔离CDP浏览器。

## 启动

~~~sh
cd reference
CHROME_BIN="/path/to/chromium" python3 verify.py
# 运行后查看原生结果阅读器（读取records.json）
python3 -m http.server 8787
# 打开 http://127.0.0.1:8787/report.html
~~~

## 七步操作

1. 启动本地文章

先打开原创 article.html，确认它包含导航、广告侧栏、正文代码块、四行参数表和页脚。输入来自练习包本地服务，不抓取外部新闻或需要登录的页面。

2. 观察原始页面

使用 Crawl4AI 的 AsyncWebCrawler 访问本机页面。浏览器实际加载后生成原始 Markdown，保留原始 HTML，方便判断过滤是否误删正文。

3. 配置正文过滤

在 CrawlerRunConfig 指定 excluded_tags 为 nav、aside、footer，并使用 DefaultMarkdownGenerator 搭配 PruningContentFilter。先从低阈值开始，避免中文短正文被一起删除。

4. 保留代码表格

查看 fit_markdown，确认 keep-code 代码仍在围栏中，width、height、fps、format 四行参数仍存在。过滤质量需要按文章内容核对，不能只比较文本长度变短。

5. 排除导航广告

故意将导航、页脚写成明显的 PROMOTION 与 NAV 标记，检查最终文本不存在这些标记。仅删除广告但连正文也为空的结果不能通过。

6. 比较输出文本

同时保存 raw.md 与 fit.md，逐段核对正文和命令。这个网页的表格与代码是正例，导航是反例；更复杂站点应另建输入集调整过滤。

7. 保存可复用配置

运行 verify.py 会启动隔离本机 HTTP 服务并调用真实浏览器与 Crawl4AI。README 说明如何指定已安装 Chromium，未运行 LLM 提取器，也不把渲染前静态字符串当成浏览器抓取。

## 目录身份

- starter：待完成的任务接口与原创输入，TODO不是已完成实现。
- reference：作者原生完成参考和实际产物。records.json/browser-result.json为本地实测记录，不是AI助手回复。
- TASK.md：可交给相应AI助手的原始任务合同。该助手账号生成会话未运行。

## 依赖与许可

原创教学代码以MIT许可提供。第三方项目、模型及浏览器遵循其自身许可。第三方依赖由本地安装获取，不包含node_modules、模型权重、WASM运行时、数据库、缓存或凭据。

## 官方依据

- https://docs.crawl4ai.com/core/fit-markdown/
