火车采集器软件交流官方论坛

 找回密码
 加入会员
搜索
火车采集器V9版免费下载火车浏览器 - 可视采集,万能群发,全自动脚本工具
查看: 7990|回复: 13

自由编辑采集资料的格式,比原始网页的表现还美

[复制链接]
发表于 2006-12-27 22:14:05 | 显示全部楼层 |阅读模式
曾经用过 CMS 系统自带的采集模块,比如动易——但是那太“呆”了。
不光采集地址编辑不灵活,还没法修改(修改无效,晕)。并且,它只属于该系统!

试用了火车,呵呵,没想到原来是装在本机上的一个程序。虽做工还不算精致,但能做事!行。。。

一开始用3.0,还真晕,以为是采集后再发布,点“发布”却老是出个对话框,没法进一步操作,,呵呵,汗

可能火车立足于“即时”发布,所以采集动作只是稍稍提前了一些,点开始,就开始了。。。。。

废话那么多?!呵呵,且听立马道来:

因为是即时发布(所有CMS系统自带采集),所以其实很难对采集到的资料进行格式改进,往往采来的资料包含有一些并不想要的标签,于是在自己网站上就有些“相形见拙”了。

火车提供了内容排除和替换,十分有用,但却不足够用。幸好,资料可以保存在本地,于是。。。。。。

1、采集时,把资料中除换行(或段落P)以外的标签都滤掉(仅指纯文本资料),保存为 CSV格式。(注意:应该在替换区将英文逗号替换为中文的,引号替换为全角的,其它标点符号替换自己考虑)

2、在Excel或(Open Calc)中导入CSV数据,按标题排序,检查删除重复的内容,删除不需要的列(如果在火车中没做的话),保存。

3、用你熟悉的编辑器,将采集资料中的换行或P标签替换成规范的P标签——原始资料中换行标签大多很乱,有时一个,有时几个。用编辑器可以采用正则批量替换,如Vim中“<[<br>]*>”表示一个或多个换行标签,将之替换成“</p><p class="xxx">”,我的操作如下:

:%s /<[<br>]*>/<\/p><p class="xxx">/g    # 替换掉一个或多个换行标签
:%s /"[,]*$/<\/p><\/Content>/                    # 内容结束标签,方便二次采集时的提取
:%s /","/<\/Title><Content><p class="xxx">/     # 安置标题结束标签和内容区头部标签
:%s /^/<Title>/    # 安置标题头部标签

(本人只要了标题和内容部分,如果有其它内容,则需要修改匹配的正则表达式。呵呵,正则表达式很强大的哦,如果你不会,建议你去学学。通过上面几个句子,可以一次性编辑几百条采集的文章——够效率吧?)

这样,提炼出了每一个段落,有了干净的资料,样式就很好定义了。下面需要做二次采集(火车中没有将本地资料按格式直接上载的功能,所以……不知会不会考虑?嘿嘿)

4、由于火车保存每次任务中所有的资料到一个文件中,一条资料为一行,所以需要将每一行转换为一个文件。我写了个PHP的小脚本,在CLI模式下执行即可(附后:php.exe mkfile.txt xxx.csv)

5、将分解的文件拷贝到主机某个目录中,构建采集URL,重新采集、上传。(呵呵,标题和内容标签已经很明确了哦)

6、样式表定义“xxx”的样式,随你啦……完。

哇。。。。有点长,其实熟了也就那么几个动作,关键是自己定义样式方便了,而且资料很干净(当然,该注明出处还要尊重版权的哦)。


休息下…………xxx

[ 本帖最后由 Liner 于 2006-12-27 22:15 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入会员

x
发表于 2006-12-27 22:53:18 | 显示全部楼层
哇。。。。。。。。。。。。好东东!长见识了,谢谢楼主哦!!!有问题请教你哦
 楼主| 发表于 2006-12-27 22:56:05 | 显示全部楼层
补充下:

为了得到“干净”的资料,其实还需要排除:英文空格、中文空格,可选的,排除掉<a (*)</a>

可以规范一下标点符号,替换掉英文句号、冒号、括号。(英文逗号、引号必须替换掉)
 楼主| 发表于 2006-12-27 22:57:36 | 显示全部楼层
原帖由 netdream 于 2006-12-27 22:53 发表
哇。。。。。。。。。。。。好东东!长见识了,谢谢楼主哦!!!有问题请教你哦


不客气。。。
发表于 2006-12-28 10:58:24 | 显示全部楼层
修改本地数据里面的资料
标题和内容怎么区分
 楼主| 发表于 2006-12-28 11:22:53 | 显示全部楼层
原帖由 monface 于 2006-12-28 10:58 发表
修改本地数据里面的资料
标题和内容怎么区分


标题和内容都在固定的字段处,用正则替换即可。
发表于 2006-12-28 13:20:18 | 显示全部楼层
发表于 2006-12-28 23:30:07 | 显示全部楼层

  学习中
  不懂我要发问的哦。
发表于 2006-12-29 09:56:48 | 显示全部楼层
原帖由 Liner 于 2006-12-27 22:56 发表
补充下:

为了得到“干净”的资料,其实还需要排除:英文空格、中文空格,可选的,排除掉<a (*)</a>

可以规范一下标点符号,替换掉英文句号、冒号、括号。(英文逗号、引号必须替换掉)



排除掉<a (*)</a>这个连中间的关键词都排除掉啦,这样不好
例如<a href=/news/>新闻</a>这样就都排除了,还是用正则替换后剩下 “新闻” 这样比较好。
发表于 2007-1-3 09:56:17 | 显示全部楼层
如果想在多少字节处加入分页符号吗?当然加入的地方必须是</p>符号,这样才不会搞坏格式,应该怎么办呢?
您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

QQ|手机版|Archiver|火车采集器官方站 ( 皖ICP备06000549 )

GMT+8, 2024-11-25 02:00

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表