尹学洪,多媒体光盘,年鉴光盘,地方志光盘,志书光盘,光盘导航,志鉴光盘制作

火车头采集常用的纯正则过滤总结「采集内容处理」

作者:江苏锐德 2022/10/19 17:22:13 人气:
有时候千辛万苦采集下来的内容但是杂乱无章,面对复杂的html代码想过滤无从下手,为了得到一个标准的内容,下面分享一下火车头采集常用的纯正则过滤规则。

场景1

每一个段落都是<p></p>没有多余的HTML标签和与主题无关的字符

提取数据方式

选择 正则提取,组合结果填 <p>[参数1]</p>

场景2

有些内容开始和结尾并没有p标签,换行是用br标签来完成,所以我们要创造p标签

把普通换行替换为段落换行,用内容替换

<br(*)> 为 </p><p>

把<div>、<div class="center">、<p class="center">形式的标签都替换成 <p>,同时</div>也要替换为</p>

内容替换 div(*)> 为 p>  内容替换 <p(*)> 为 <p>

那么这里我为什么不用纯正则 div.*?>|p.*?> 替换为 p> 呢,因为比较常出现的 '<p>&nbsp;</p>' 会被替换为'<p>&nbsp>'

数据处理

第一步:清除与正文无关的内容,如文中的广告,注释等

正则 <header>[sS]*?</header>|<!–.*?–>| |规则4|规则5 替换为 空

如果发布到一些免费平台,有的HTML特殊字符并不会被转化,只需在末尾加入’|&.*?;’过滤掉最后特殊HTML字符即可。

第二步:只保留图片以及常用的块级元素

正则 (?i)<(?!/?h|/?p|/?div|br|img).*?> 替换为 空

只保留标题标签 h 分段标签 p、div、br 以及图像标签 img ;前面的(?i)表示不区分大小写

第三步:去掉除了img标签外的所有标签的选择器或样式,并把标签修改为p

正则 <(?!img)(/?)w+.*?> 替换为 <$1p>

第四步:把乱七八糟的图像样式,改成标准图像代码

正则 <img.*?src=”(.+?)”.*?> 替换为 <img src=”$1″>

第五步:规范段落标签<p>开始</p>结束

正则 </?p>替换为</p><p>

慧聪网段落只有<p>开始没有</p>

结束某些站个别文章,</p>结束后没有<p>开始就直接是下个段落的内容

第六步:把<p>或</p>前后的空格替换为空

正则 s*(</?p>)s* 替换为 $1

第七步:把连续2个以上的<p>或</p>替换为1个

正则 (<p>){2,}|(</p>){2,} 替换为 $1$2

第八步:把所有的空段落替换为空

内容 <p></p> 替换为 空

第九步:由于第五步的关系,文章开头可能是</p>结尾可能是<p>需要清理他们

正则 ^</p>|<p>$ 替换为 空

上一篇:PHP 将文章详情内容匹配关键词作为内链的正则替换
下一篇:iis服务器站点安全加固:IIS短文件名漏洞修复
共有:条评论信息评论信息
发表评论
姓 名: 验证码: