文章采集程序(2.定时的执行,怎么样让一个任务定时执行?(图))
优采云 发布时间: 2022-04-06 07:25文章采集程序(2.定时的执行,怎么样让一个任务定时执行?(图))
还是先废话一句,程序还在开发阶段,担心开发出来的程序会变形,所以就拿出来包扎了。市面上已经有很多采集软件了,我只是在重复轮子,并没有比他们的好多少,而且很可能是太差了。不过对比现在的一些采集方案,我觉得是基于组件的,每个组件都可以替换,希望可以算是一个亮点。同时,也希望本次展览能得到同行专家的建议和批评。
目前尚未解决的问题有:
1.一些需要cookies的网站,为什么采集,sina,我登录了,但是cnblogs没有登录成功。
2.定时执行,如何让一个任务定时执行,使用?,由于一个采集任务的URL可能很多,第一个URL的时间采集,最后一个一个 URLs 采集 的时间可能相隔几个小时。如果整个任务需要1h的间隔和采集一次,那么最后一个URL可能只是采集,它将是采集。或者最后一个任务还没有执行到该 URL。采集区间策略的情况这里没有考虑,比如采集不变化3次就延长下一个采集时间等。
3.存储问题,如果使用DAS或者数据库,完全没有问题,但是如果每个客户端都以文件的形式存储采集的结果,那么每个客户端上的文件怎么会是聚合和合并?这将是一个系统工程
4.任务流程和组件组装接口的实现,目前流程的配置是用文本编辑器编辑配置文件,很容易出错,不知道关于GDI+,我想不出实现接口的好方法。组装的组件。
我们先来看看采集的结果,然后介绍采集的整个过程。采集的结果保存在xml中,使用程序自带的Store2Xml组件,如果想存放在特定的数据库中,可以自己写一个组件,或者提供一个cms的webservice @> 我们将再次使用适配器组件。
我考虑制作另一个 Store2MDB 组件来促进数据传输并嵌入。我不使用 sqlite,因为普通用户可能不太了解它。
下面我以采集下的创业资讯和创业技巧栏目为例来展示这个程序
step1:分析网页
这两列的样式是一样的,所以我们只需要写一个采集规则。
打开任意列的列表页,查看其源代码。我们需要找到重复的片段。下图中高亮部分为重复内容。
我们把上图中要提取的部分源码放到RegexBuddy中作为测试代码来测试我们写的规律性
将测试的正则表达式放入组件的指定属性中,目前只能手动配置。在实践中,有一个图形环境,提供了一步一步的操作提示
最后我们来设计组件组装配置执行的流程,使用boo解释引擎,类似ironpython
设计阶段一共有三个文件,其中文本文件存储了一组URL为采集,每行一个
第 2 步:添加任务
添加设计阶段制作的任务包,填写信息,即可提交任务
下图是后台运行程序的过程
采集 的结果