使用火车采集器进行网页内容标准化处理
火车采集器几乎所有网页都能采集,用途很广。比如网站采集内容、采集数据挖掘客户、舆情监测、文件批量下载等。我日常主要用于网站日常采集文章,今天分享下如何通过火车采集器得到一个“标准”的内容。
这里所谓的标准,是所采集的文章每一个段落都是<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})
通过以上步骤,我们可以将采集到的内容标准化,使其符合我们的需求。这样处理后的内容不仅整洁,而且便于后续的编辑和发布。
欢迎指出任何有错误或不够清晰的表达,可以在下面评论区评论。