
HTML 是已保存的页面标记。库是读者另行安装的代码。散列是用于识别这一份已保存副本的文件指纹。None 或空输出表示提取不可用。获取到的输入、正文和提取状态必须分开;登录页、验证挑战或 HTML 外壳不是已取得的正文,而且没有测试渲染或隐藏访问。
检查从网页提取的正文
- 先确定代理需要页面中的哪些内容,以及哪些页面区域不在该需求之内。此方法针对的是提取质量。
- 如果需要发现候选 URL,使用公开的 Google Search Scraper build 1.0.15 Actor 与一个 Task。用一个预定的搜索短语替换已保存的整组三查询样本,设置为 `queries` ["one intended phrase"]、`engines` ["bing"]、`maxResultsPerExecutedQuery` 2、`country` "US"、`language` "en"、`safeSearch` true 和 `includeSponsoredResults` false。原生搜索候选字段包括 `engine`、`executedQuery`、`canonicalUrl`、`resultDomain`、`snippet`、`rank`、`page` 和 `observedAt`。输出汇总记录包括 `queriesRequested`、`searchesCompiled`、`executionsPlanned`、`enginesRequested`、`enginesSuccessful`、`enginesFailed`、`pagesAttempted`、`pagesParsed`、`candidatesSeen`、`resultsSaved`、`engineStatusCounts`、`queryResultCounts` 和 `stopReason`。当前的两行 Bing 对照返回了直接的 docs.python.org 候选 URL,并带有查询、排名 1 和 2、第 1 页和观察时间,外加一个已解析页面以及 stopReason `result_caps_reached`。它只验证范围有限的候选结果,不验证目标页面获取、文本提取,也不验证其他引擎或市场。此处只有 Bing 有已通过验收检查的引擎证据。
- 另行获取允许访问的目标页面,并保留其最终 URL、获取时间、内容类型和源 HTML。该搜索 Actor 不执行这次获取。请确认已保存的输入确实包含预定的文章文本。`fetch_failure`、`body_not_in_saved_html` 和 `extraction_unavailable` 必须分开。
- 在已记录的版本和选项下,对这份已保存的 HTML 单独运行文本提取库。原来的本地 HTML 源测试样本使用已安装的 2.0.0 版本,以 `trafilatura.extract(html, include_comments=False)` 做了测试。请注意,当前文档描述的是 2.3.1 版本,因此这些版本事实必须分开保留。
- 在接受输出之前,先定义几项源检查:必需的标题或段落、否定或条件、带单位的数字,以及应排除的导航、页脚或评论。对照已保存的 HTML 和返回的文本。丢掉单位或缺少否定,都可能使含义反过来。
- 将每项检查记为 retained、changed、missing、unwanted_noise_present 或 cannot_resolve,并附上确切的源定位和提取出的段落。仅在有用时统计已检查的事实。
- 如果关键检查未通过,应复查已保存的 HTML 和提取设置,而不是把损坏的文本交给代理。
- 保存一份精简的提取记录:源 URL 和获取上下文、HTML 引用或散列、提取器版本和选项、输出引用、检查表以及决定。
原始的虚构完整已保存 HTML 源测试样本:“虚构托盘指南”的已保存 HTML 含有导航、登录和页脚区块、一篇文章以及评论区。文章写道:“在托盘水平之前不要加水”以及“此虚构演示使用 12 毫升水。”评论和菜单包含无关词语。此源测试样本没有实时获取任何目标页面。
| 检查项 | 已保存的 HTML 内容 | 提取的文本输出 | 状态 |
|---|---|---|---|
| 必需标题 | 虚构托盘指南 | 虚构托盘指南 | 已保留 |
| 否定 / 条件 | 在托盘水平之前不要加水 | 在托盘水平之前不要加水 | 已保留 |
| 数字和单位 | 12 毫升 | 12 毫升 | 已保留 |
| 导航标记 | NavigationMarker | 未出现 | 读者建立的检查:不需要的噪声未出现 |
| 页脚标记 | FooterMarker | 未出现 | 读者建立的检查:不需要的噪声未出现 |
| 评论标记 | CommentsMarker | 未出现 | 读者建立的检查:不需要的噪声未出现 |
已安装的 2.0.0 版本提取器调用产生了非空正文。像“加水。使用 12”这样的假设输出会使两项检查不通过,因为必需的否定和条件被改变,而且数字的单位缺失。假设的空输出应标为 `extraction_unavailable`,而不是一篇事实条数为 0 的文章。
来源和延伸阅读
作者 Chronometrica · 更新日期
返回顶部 ↑
