火车头采集常用的纯正则过滤

使用火车采集器进行网页内容标准化处理

火车采集器几乎所有网页都能采集,用途很广。比如网站采集内容、采集数据挖掘客户、舆情监测、文件批量下载等。我日常主要用于网站日常采集文章,今天分享下如何通过火车采集器得到一个“标准”的内容。

这里所谓的标准,是所采集的文章每一个段落都是<p></p>,没有多余的HTML标签和与主题无关的字符。这里我们可以通过纯正则替换达到我们的目的。

常用纯正则替换规则示例

清除与正文无关的内容

正则:<header>[\\s\\S]*?</header>|<!--.*?-->| |规则4|规则5

替换:空

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

只保留图片以及常用的块级元素

正则:(?i)<(?!/?h|/?p|/?div|br|img).*?>

替换:空

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

把标签修改为p

正则:<(?!img)(/?)\\w+.*?>

替换:<$1p>

去掉除了img标签外的所有标签的选择器或样式,并把标签修改为p,如果需要保留其他标签可以参考这样写 <(?!img)(?!h)(?!/h)(/?)\\w+.*?> 这里是保留img和h标题标签

改成标准图像代码

正则:<img.*?src="(.+?)".*?>

替换:<img src="$1">

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

规范段落标签

正则:</?p>

替换:</p><p>

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

段落去除前后空格

正则:\\s*(<\\/?p>)\\s*

替换:$1

<p></p>前后的空格替换为空

去除多余P标签

正则:(<p>){2,}|(</p>){2,}

替换:$1$2

把连续2个以上的<p></p>替换为1个

去除空段落

内容:<p></p>

替换:空

把所有的空段落替换为空,普通替换即可

清理多余标签

正则:^</p>|<p>$

替换:空

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

其他可能用到的

过滤英文正则:[a-zA-Z]

过滤两位以上的数字:(\\d{2,100})

通过以上步骤,我们可以将采集到的内容标准化,使其符合我们的需求。这样处理后的内容不仅整洁,而且便于后续的编辑和发布。


欢迎指出任何有错误或不够清晰的表达,可以在下面评论区评论。

×

喜欢就点赞,疼爱就打赏

//