爬完一批网页正文,导出一看全是看不懂的内容:一堆<script>包裹的代码块、<!-- -->形式的开发备注,还有 class、id 这类挂在标签上的属性,直接拿去入库或者发布根本没法用。其实这类隐藏内容不用手动清除,简数采集器的字段数据处理里自带的 HTML 标签过滤就能搞定。
采集回来的正文里,平时最常碰到的 "多余隐藏内容" 分三类:
- 标签属性:比如 class="xxx"、id="xxx",是页面挂在标签上的样式类名和编号标识(对应的匹配写法是 class=".?"、id=".?",这里的 .*? 是匹配引号内任意字符的通配规则,不用深究,默认规则里已经配好);
- 脚本标签:
<script[\s\S]*?</script>包裹的页面脚本代码,页面上看不见,却会混进正文文本里; - 注释:
<!--[\s\S]*?-->包裹的开发者备注,属于源码层面的说明文字,正常浏览页面时不会显示。
自定义保留或过滤标签的操作流程
打开简数某个采集任务的详情提取器(就是配置网页正文、标题、发布时间等详情字段的模块),点击目标字段,进入字段数据处理页面,切换到【HTML 标签过滤】设置页。
具体一步步来:先勾选【获取HTML】和【过滤部分 html 标签】选项,然后点一下【重置为默认】按钮,调用系统预设的一套默认过滤规则,过滤掉不常用的HTML标签,包括标签属性、脚本标签和注释等。
这里有个容易踩的坑:勾选 = 保留该标签,不勾选 = 过滤掉该标签,逻辑和平时习惯的相反,配置时别弄反。按实际需要勾好想保留的标签,最后保存设置,之后新采集到的内容就会按这套规则清洗。
高频场景怎么调
- 导出的文章没有排版,段落、区块全散了:可以试着把 div 标签(用来划分页面区块的基础容器标签)勾选保留,多数情况下基本排版就能恢复;
- 需要保留图片的 alt、title 属性:alt 是图片加载失败时显示的替代说明文字,title 是鼠标悬停在图片上时出现的标题提示,勾选 "保留标签属性:alt 和 title" 即可,注意这个选项默认是关闭的,得手动打开。
网页数据采集完成后的清洗环节,看着琐碎,却直接决定采回来的数据能不能用:脚本、注释、冗余属性不清掉,后面导入数据库、发平台或者做二次处理都会出各种小问题。简数采集器把这步收拢在字段数据处理里,不用自己写匹配规则,对着勾选调整就能完成。平时以采集文章类内容为主的话,可以把这套过滤配置跑熟,遇到排版丢失、表格剥离、图片属性保留这类常见小问题,基本都能在这里解决。