ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

从 PDF 到 Markdown:insane-search 内容救援管线的 6 种智能提取策略

从 PDF 到 Markdown:insane-search 内容救援管线的 6 种智能提取策略 从 PDF 到 Markdowninsane-search 内容救援管线的 6 种智能提取策略【免费下载链接】insane-searchAuto-bypass for blocked websites in Claude Code — Phase 0→3 adaptive scheduler, no API keys项目地址: https://gitcode.com/gh_mirrors/in/insane-search当抓取工具拿到一个页面后拿到字节只是第一步。insane-searchGitHub 加速计划 / in / insane-search的内容救援管线会判断返回内容的真实形态——PDF 二进制、JSON-LD 结构化文章、广告堆砌的 HTML、还是空壳 SPA——并从6 种智能提取策略中选出最合适的一种把原始字节变成干净、可用的 Markdown 文本全程无需任何 API 密钥。为什么需要救援默认抓取经常拿到能访问但没法用的结果服务器返回的是PDF 二进制直接读只会看到乱码页面是SPA 空壳可见文本只有几十个字符真正的正文藏在 JSON-LD 里HTML 能读但导航、侧栏、广告占了八成篇幅浏览器渲染出的innerText反而比原始 HTML 更完整。insane-search 的救援逻辑集中在 fetch_chain.py 的_extract_response函数中默认以原始正文为准只有当某条救援路径能产出更优结果时才替换。每条路径都有严格边界扫描前缀、页数上限、文本长度上限防止超大文件拖垮流程。6 种提取策略逐个拆解策略 1raw原始正文兜底抓到的 HTML 文本先原样保留这是最保守也最可靠的基线。所有救援策略都遵循同一个原则产出的文本质量分不高于原始文本时绝不替换。质量分由可见文本长度、主题相关性等信号综合得出。策略 2pdf双解析器抢救 PDF这是从 PDF 到 Markdown 文本的核心路径fetch_chain.py 的_extract_pdf魔数检测响应头说是 HTML、实际却是%PDF-开头照样识别为 PDFpdfplumber 优先多栏排版、表格还原效果更好pypdf 兜底前者没产出文本时再试 pypdf边界保护最多处理 80 页、文本总量封顶扫描件会如实报告pdf_no_text_layer而不是假装成功。v0.16.3 起 PDF 解析器还是延迟加载的——普通 HTML 抓取完全不会为此付出启动开销见 CHANGELOG.md。策略 3json_ld从 JSON-LD 里挖出正文很多新闻站和博客把完整正文写进script typeapplication/ldjson的articleBody字段而页面可见文本反而很短。_extract_json_ld_text会解析 Article / NewsArticle / BlogPosting 类型的块提取articleBody或description。只有当 JSON-LD 文本明显长于可见文本时才启用避免误伤正常页面。策略 4maincontent只留正文剥离广告通过可选的 resiliparse 库把导航、页脚、侧栏、广告等模板内容全部剥掉同时保留列表和排版结构。结果太薄达不到最小字符数时自动放弃并保留原始 HTML。该策略需显式开启且优先级高于 Markdown 转换。策略 5rawmdHTML 转结构保持的 Markdown对原始 HTML 路径markdownify 会把网页转成保留结构的 Markdown标题变 ATX 格式、表格变管道表格、pre/代码块变围栏代码块并预先清掉 script/style 等噪声。转换失败则回退原文——对调用方的契约永远是至少拿回原始内容。策略 6render-merge浏览器 innerText 合并走到 Phase 3 真实无头浏览器时见 fallback.md 的升级流程渲染后的innerText往往比原始 HTML 的可见文本更完整。管线会把两者与可见文本长度对比而不是与带标记的 HTML 比——那样标记版永远占优浏览器版本更长时合并进正文来源标记为xxxinner_text。一次抓取的完整标记每次抓取结果都会携带三样诊断信息无需重复抓取即可回溯字段作用extraction_source标记正文由哪条路径产出raw、pdf、json_ld、maincontent、rawmd、…inner_textextraction_quality0–1 质量分供上层判断内容是否够用trace每一次尝试URL 变体 × TLS 指纹 × Referer × 执行器的完整记录所有相关行为都有对应测试保障例如 PDF 延迟加载test_lazy_pdf.py、Markdown 转换test_t3_markdown.py、主内容剥离test_t4_maincontent.py与差分分类test_t6_differential.py。延伸阅读救援策略总纲SKILL.md升级调度细节references/fallback.md平台与方法列表PLATFORMS.md安装脚本setup/setup.shinsane-search 的设计哲学一句话就能说完从不预设放弃也从不伪装成功——6 种提取策略保证能拿到的内容一定是最干净的那一份拿不到的就如实标记。【免费下载链接】insane-searchAuto-bypass for blocked websites in Claude Code — Phase 0→3 adaptive scheduler, no API keys项目地址: https://gitcode.com/gh_mirrors/in/insane-search创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表