报纸广告检测
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_e1929702/ljs20260511。
技能介绍
要解决什么问题
研究历史报纸或做媒介史分析时,典藏站上的版面往往是整页扫描图:商业广告、公益告示和分类栏混在正文与插图之间。人工逐页标注成本高,而站点又常带 SSRF 限制、会话 Cookie 与 Referer 校验,直接拿浏览器工具拉图容易失败或只拿到几 KB 的缩略图,OCR 几乎读不出有效文本。
技能如何工作
本技能把从页面访问到结果归档串成固定流程:先检查 Tesseract OCR 与本地代理(如 Clash 127.0.0.1:7897);对 NewspaperSG(eresources.nlb.gov.sg)等域名用 exec + curl + 代理 拉 HTML,而不是浏览器导航。拉图时必须同时带上 -b cookies.txt 与正确的 Referer,否则仍是缩略图。
拿到页面后,根据图片 URL 中的 ct 参数区分 ARTICLE+ILLUSTRATION(正文/插图,非广告)、ADVERTISEMENT、CLASSIFIED 等;若全是正文类或混合,再按区域(如 area=1,10,20,26)下载切片并跑 OCR,用关键词表(如 assets/ad_keywords.txt)辅助识别。识别出的条目会归入商业广告、公益广告、分类广告,并可输出每条的位置描述(左上/侧栏/横幅等)、有图/无图、约占版面比例与内容摘要。结果写入 {workspace}/newspaper_ads/{date}_{newspaper_name}/,配合 scripts/extract_ocr.py、archive_results.py 与可配置的 classification_rules.json。
适用边界与注意点
- SSRF:浏览器工具不能访问被策略拦截的内网/特定域名;应固定使用
curl.exe -x http://127.0.0.1:7897模式(Windows 上勿用 PowerShell 的curl别名)。 - 选图 DOM:勿用泛泛的
querySelectorAll('img'),应针对报纸内容节点如img.image-content,避免把站点 UI 图标当版面。 - OCR 漏检:不能只看
ct=;需系统性下载各区域 OCR。Tesseract 路径在 Windows 上可能在C:\Program Files\Tesseract-OCR\tesseract.exe。 - 含
&、--的长命令在 PowerShell 中易解析失败,宜写入.ps1脚本执行。
使用场景
- 从 NewspaperSG(eresources.nlb.gov.sg)按文章页拉 HTML,用 curl 带 Cookie 与 Referer 下载全尺寸版面图,再跑 Tesseract 区分广告与正文。
- 研究 Chronicling America 等典藏时,需根据图片 URL 的 `ct` 参数判断 ADVERTISEMENT/CLASSIFIED,并对混合版面按 area 分区 OCR 扫广告关键词。
- 要把识别结果按商业、公益、分类三类归档,并为每条广告写清相对位置(侧栏/底栏)、有图或无图及约占版面比例。
- 浏览器因 SSRF 无法打开 NLB 资源站时,改用 exec 调用 curl.exe 走本地 Clash 代理完成整页抓取与切片 OCR。
适合人员
- 做媒介史或广告史研究的学者,需要把在线报纸典藏里的商业/分类广告从正文中拆出并导出可分析的 JSON/CSV。
- 参与 NewspaperSG、Chronicling America 等项目的编目或标注人员,要按技能流程写广告位置说明与类型分类。
- 在 Windows 上维护典藏抓取流水线的人,需处理 Tesseract 路径、curl.exe 与 `.ps1` 脚本以避免 PowerShell 解析错误。
- 构建自定义分类规则的研究助理,会改 `classification_rules.json` 与 `ad_keywords.txt` 以适配特定语种或时期的版面用语。