e282486518 发表于 2013-8-9 17:49:47

让免费用户实现插件的部分功能

这里我只是说一些简单的思想。抛砖引玉而已。

话说,前几天公司要对网站的数据做扩充,采集竞争对手的数据。
有几个功能火车头实现不了:

1、两个栏目下有相同的一个网址,火车头默认只会采集一个,另一个会跳过,但是我在采集分类页URL时,设置了标签记录分类的ID,如果一篇文章同时在两个栏目下,火车头只会采集到一个分类ID。
于是我想让两个分类下的相同URL的内容页变的不相同,这样火车头就不会跳过第二个url的收集了。
我采取的方法是生成一个随机数在url地址后面,
例如:xxx.com/abc.html#565
          xxx.com/abc.html#345
这样,两个url就不重复了。

但是问题是怎样生成随机数呢?于是我看到了插件。。。。用php写了一个火车头插件,的确在测试采集网址的时候能够将两个分类下的url和栏目id都采集下来。但是真在高兴之余,发现正式采集是提示:“该版本不能使用插件功能”。。。蛋疼啊。

郁闷之余,详细看了一下插件处理的过程,发现有可以利用的地方。
插件三大部分处理的第二点“对下载的原始网页代码进行处理”,处理后提交到采集系统进行数据采集。

哈哈,就在这里了。
针对我本次采集的任务,只需要“火车头采集器采集我们用程序处理过后的网页即可”。
于是,我在本地搭建了一个php环境。

在采集到的栏目URL组合成localhost/abc.php的本地连接。
我在abc.php中将原本要采集的网页用php的file_get_content函数获取后,用正则将需要处理的地方处理掉,并生成一个随机数。例如图中的str="" 中的【参数】


这样,火车头采集localhost/abc.php时,就是采集处理过后的源码了。
于是就间接实现了插件的功能。。。

采集超市 发表于 2014-9-30 12:20:12

这种思路可以借鉴下,不错

















专注于火车头规则、插件、模块、接口定制!为企业和个人提供全方位的采集发布方案!
联系QQ:137178124
官方网站:www.locoymall.com
http://bbs.locoy.com/data/attachment/forum/201310/21/002539x2g25ntt59yx85xt.gif

xingsys 发表于 2015-1-25 18:21:23

果然厉害,高手的思路就是不同www.tfxq18.com

w1983912 发表于 2015-3-8 15:12:19

....效率不高。。。。。。。。。测试过了经过2次读取。。。还影响火车头性能我测试过100个文章 采集这样的分页有小半无法获取到内容和内容的分页内容 所以。。。。。。

xfyanmeng 发表于 2015-3-11 21:59:26

这方法我也用过,主要是火车头处理数据的时候不能随心所欲,自己写代码就不一样的,想咋地就咋地!
页: [1]
查看完整版本: 让免费用户实现插件的部分功能