如何让一个任务定时执行,实现界面化的组件装配
优采云 发布时间: 2021-07-28 01:44如何让一个任务定时执行,实现界面化的组件装配
先废话,程序还在开发阶段,担心开发出来的程序会变形,所以拿出来。市场上已经有 n 多款采集 软件。我只是在重复轮子。他们并不比他们好多少。他们很可能很糟糕,以至于他们甚至都没有接近。但是,相比目前的一些采集程序,我认为它是基于组件的,每个组件都是可以替换的。我希望它可以被视为一个亮点。同时也希望各位专家对本次展览提出建议和批评。
未解决的问题是:
1.一些需要cookies的网站,怎么采集,sina,我登录了,但是我登录cnblogs失败了。
2.定时执行,如何让一个任务定时执行,使用呢,因为一个采集task可能有很多URL,第一个URL采集的时间,最后一个采集的URL @'S的时间可能相隔几个小时,如果要求整个任务相隔1h,采集一次,那么最后一个URL可能只是采集完再要采集,或者最后一个任务还没有尚未执行。网址。这里没有考虑采集interval 策略。比如采集不换3次,下次采集时间会延长。
3.Storage问题,如果使用DAS或者数据库,完全没有问题,但是如果每个客户端都以文件的形式存储采集的结果,那么每个客户端上的文件怎么聚合并合并?将是一个系统工程
4.组件的任务流程和装配接口实现问题。目前流程的配置是使用文本编辑器编辑配置文件,非常容易写错。不懂GDI+,也没有想到好的实现方式。基于接口的组件组装。
先来看看采集的结果,再介绍一下采集的整个过程。 采集的结果保存在xml中,使用程序内置的Store2Xml组件。如果你想把它存储在特定的数据库中,你可以自己写一个组件,或者提供一个cms的webservice,我们会再做一个适配组件。 .
我正在考虑制作另一个 Store2MDB 组件,它易于传输数据并且也是嵌入式的。之所以不使用sqlite,是因为普通用户可能不太了解。
下面我以采集下的创业信息和创业秘诀栏为例来展示这个程序
第一步:分析网页
这两列的样式是一样的,所以我们只需要写一个采集规则即可。
打开任意列的列表页面并查看其源代码。我们需要找到重复的片段。下图中高亮部分为重复内容
我们将上图中要提取的部分源码放入RegexBuddy作为测试代码,测试我们编写的规律性
将测试的正则性放入组件的指定属性中。目前只能手动配置。在实践中,有一个图形环境,提供逐步操作提示。
最后我们会设计组件安装和配置执行的流程,使用boo解释引擎,类似ironpython
设计阶段一共三个文件,其中文本文件存储采集的URL集合,每行一个
第 2 步:添加任务
添加设计阶段制作的任务包,填写信息,然后提交任务
下图是程序在后台运行的过程
附上采集的结果