来源:常见问题解疑 - 远策科技 | 2022-01-24
火车采集器几乎所有网页都能采集,用途很广。比如网站采集内容、采集数据挖掘客户、舆情监测、文件批量下载等。我日常主要用于网站日常采集文章,今天分享下如何通过火车采集器得到一个”标准“的内容。
这里所谓的标准,是所采集的文章每一个段落都是<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})