火车头采集器代码过滤方法
为了得到一个标准的内容,在采集上必须下足功夫才行!
我对标准内容的衡量:
1.每一个段落都是<p></p>
2.没有多余的HTML标签和与主题无关的字符
提取数据方式
选择 正则提取,组合结果填 <p>[参数1]</p>
有些内容开始和结尾并没有p标签,换行是用br标签来完成,所以我们要创造p标签
数据处理
第一步把火车头默认的HTML标签排除中没有的标签都替换为空;如果发布到免费平台,还要过滤些无法转换的HTML特殊字符;另外就是与正文无关的内容,如中间的广告什么的也可在这里清除。
纯正则替换 <\/?em>|<\/?u>|<\/?blockquote>|<header>[\s\S]*?</header> 为空
其中'<header>[\s\S]*?</header>'是去除与正文内容无关的规则案例,不用的话可以去掉;要去除HTML特殊字符,在末尾加入'|&.*?;'即可
第二步:把非标准的段落标签替换为标准的p标签。
1、把普通换行替换为段落换行,用内容替换
<br(*)> 为 </p><p>
2、把<div>、<div class="center">、<p class="center">形式的标签都替换成 <p>,同时</div>也要替换为</p>
内容替换 div(*)> 为 p> 内容替换 <p(*)> 为 <p>
那么这里我为什么不用纯正则 div.*?>|p.*?> 替换为 p> 呢,因为比较常出现的 '<p> </p>' 会被替换为'<p> >'
第三步:清理工作
1、HTML标签排除
点击全选,把 '所有标签<'前的勾去掉,之后根据需要把标签前的勾去掉。一般只要把'段落<p'的勾去掉就可以了,了不起再把'图像<img'的勾去掉,其他基本用不上。
2、清理p标签前后的空白字符,如果不清理干净会影响到后面的规则
纯正则替换 \s*(<\/?p>)\s* 为 $1
3、删除所有空段落
一般情况下只要设置了 内容替换 <p></p> 就可以了,但是实际应用中却是会碰到一些特殊情况
当文中出现嵌套标签 <p><p></p></p> 设置了内容替换<p></p>后,还会剩下一对<p></p>。
如果这组嵌套标签出现在正文中间,这问题不难解决,只要在<p></p>内容替换前加上 正则替换 (<p>){2,}|(<\/p>){2,} 为 $1$2 这样无论嵌套多少层标签,最终都只剩下一对,之后内容替换<p></p>就可以完全清理干净了。
如果出现在文章开头或结尾,那就比较麻烦了。为了照顾非p标签换行的文章,我们在正则提取时已经设置好 组合结果为 <p>[参数1]</p>,那么一旦出现嵌套标签,会出现如下情况
<p><p><p></p></p> 最前面多了一个p,如果用上面的方法,那么最终就会把这些p替换干净,可是文章开头没有p标签合适吗?我想到了2种解决办法
1、针对采集页的规则,从一开始就把这些嵌套标签替换为空。缺点是不同网站的采集页规则不同,工作量就增强了。
2、进行多次<p></p>内容替换,比如 <p><p><p></p></p> 进行2次替换后就只剩下<p>符合我们的要求。一般设置3次够了,大多数网站的标签不会超过3次嵌套。需要注意的是,采用这种方法就需要把多个p标签替换为1个的正则替换规则往后移。
3、清理多余的p标签,纯正则替换
(<p>){2,}|(<\/p>){2,} 为 $1$2
只要连续出现2个以上的<p>或</p>都会替换成一个
4、清理可能出现的标签,并把文中所有连续2个以上的空格过滤掉
纯正则替换 <(?!\/?p|img).*?>|\s{2,} 为空
p标签和img标签外的所有标签都会被过滤掉,不用担心有杂七杂八的标签出现
为什么要选择2个以上的空格替换为空呢?因为文章中出现一个空格是有利于整洁的,如果包含英文那就更需要留这个空格了,而2个以上的空格一般是多余的,对正文没有意义。
(资源库 www.zyku.net)
上一篇:TortoiseSVN checkout 之后图标(绿色勾之类的)没有显示出来的问题
栏 目:工具资源
本文标题:火车头采集器代码过滤方法
本文地址:https://www.zyku.net/gongju/1749.html
您可能感兴趣的文章
- 05-06火车头采集器采集列表页教程
- 04-17火车头采集器标签循环采集
- 04-08火车头采集器使用post方法获得采集网址
- 08-08火车头采集器fiddler 获取cookie的简单说明
- 04-26火车头采集器常用正则表达式
- 03-11火车头采集器v7.6解决闪退的方法
- 10-26帝国CMS 7.2火车头采集器免登录新闻发布模块
- 02-23DedeCMS图片添加水印支持中文文字水印
- 09-20oppo手机如何限制应用使用时间
- 02-23DedeCMS内容页分页标签pagebreak的修
- 12-04微信朋友圈封面视频怎么弄
- 11-25苹果13自动旋转屏幕怎样开启
- 11-05微博设置关注检测方法介绍
- 12-26华为nova7开启开发者选项步骤介绍
- 12-22荣耀20s开启游戏免打扰方法简介
- 10-19iphone13pro禁用5g网络方法介绍
- 09-19微信怎样取消核酸检测预约
- 11-12支付宝商家收款码如何升级
- 08-16腾讯游戏心悦会员等级怎样查询
- 10-19钉钉添加钉闪会教程介绍

最近更新
阅读排行
猜你喜欢
- 09-19oppo手机Breeno识屏功能怎样开启
- 12-18HTML <sub> 标签
- 12-29作业学习快帮-作业学习快帮应用软件功
- 09-19ios14怎么编辑页面顺序
- 09-23safari扩展添加步骤分享
- 09-11高德地图实名认证教程分享
- 10-28支付宝芝麻信用怎么删除逾期记录
- 09-24oppo手机热点功能在哪里
- 09-26QQ音乐怎么用手机号绑定
- 03-04wordpress支持中文用户名的实现方法