强列建议改善火车采集流程多样性
公司最近让我做一个采集程序(PHP的),目的是用来采集小说..比如新浪、网易、四月天、八路中文网等..
花了我半月时间..做是做出来 了..可是效率太低....服务器上采一天一夜才一千多部小说....还时常...超时....
听说火车不错...Down了...开了两天...总结了一下,并提出一点看法:
一.火车采集流程太单一,这也是最郁闷的
只能是
列表-内容
而大多数小说网站是
列表-简介-章节列表-章节内容
或
列表-简介+章节列表-章节内容
所以火车不能满足此需求。
我觉得采集应该走流程定制化。由用户一步步选择执行的行为,如先干什么,再干什么,最后要得到什么,没得到时干什么,得到了干什么,
再如:先去列表页抓列表Url//标题/分类名/-再去那个连接的页面抓图片-再去抓章节列表-再抓内容
这些步骤都是应该可以改变的....即可以在内容页抓标题,也可以在列表页抓标题。这样的话灵活性高太多了。。。
理论上是万能的采集了。
二.规则定义时建议增加 或
即某个条件不匹配时可以匹配另一个条件,这个很重要。因为我发现很多网站的代码结构都不规范或整齐,同一个列表页连接到的内容页的代码规则可能会不一样。或多或少有点分别。
如果引入或 的功能的话,对这种情况的网站采集规则定义就方便多了。
三。增加直接输入正则表达式的功能
大多数朋友都不是专业人员,不会懂得正则表达式的定义。所以程序设计上努力让大多数用户使用角度考虑,这是非常应该的。
可是对于有一定语言能力的高级用户。他们希望得到的并不是一个傻瓜像机,他们更希望一个专业的东东,就像Office有宏,VBA等面向高级用户的东东。因为他们有专业知识,是用得着这些玩意儿的。
火车在定义规则时有一个“正则内容排除”,其实在我看到这个根本不能直接输入正则表达式来让程序识别。也就是说火车不能接受用户输入的正则表达式。
所以我建议火车增加 正则表达式功能,即:让用户输入正则表达式,再由用户选择一种对匹配结果的处理方式如删除或替换或返回True/False
四.这里说的是BUG了
不过也不用我报BUG了吧,相信你们自己已经熟知自己的产品和优式及不足。现有的BUG一定正在下一版本开发过程中解决。
而我觉得更重要的是火车程序的设计构思,发展方向,功能完善,性能优化。