一孑 posted on 四月 28, 2009 04:09
前面谈到了,做一个爬虫程序并不复杂,如果是做一个单线程的爬虫程序,可能一天就可以完成。但性能极低。所以,需要考虑多线程的问题。一旦引入多线程,很多问题都需要重新设计,最近一直在做soukey爬虫,反复测试一些内容,颇有些感触,在此做个记录。 多线程算法:上一篇文章谈到了,我们采用广度优先的算法。这个时候就需要考虑线程的分配算法了:我测试了两种: 1、如果设定30个线程,则任务启动就开30个线程去执行任务,任务信息通过一个队列来完成,所以30个线程就是不断的去读取一个队列,执行任务;这是第一种算法,看到网上的一些列子也都是采用此算法,同时codeproject上提供了一个... [更多...]

Posted in:   Tags: ,
一孑 posted on 四月 21, 2009 07:10
正在给Soukey采摘增加一个爬虫的功能,作为一个任务放到soukey采摘中,这样指定一个入口地址即可将所需的采集的信息采集出来,类似搜索引擎的做法。本以为做一个简单的爬虫程序不是很难,但在编写的时候才发现要想做好,确实有难度。 在此整理了一些,仅供参考: 1、算法:是采用广度优先还是深度优先,从算法考虑,广度优先性能高且算法简单; 2、网址解析:网址解析相对比较容易,但需要考虑是否进行外部网址的探测,如果进行外部网址探测,则就开始了一个蜘蛛网的爬行了; 3、探测网址深度设定:通常情况是所有的网址都可以探测到,只要深度足够,且网站链接做的足够好; ... [更多...]

Posted in:   Tags:
一孑 posted on 四月 20, 2009 10:47
此次修改了一个重大bug,优化了一个功能 1、Url地址参数,如果参数数字是递减,会出错,此bug已经修正。 2、一个采集任务中如果存在非法的网址,或Url未能找到,会报错,此错误会终止任务运行,现在将错误忽略,任务继续执行,在任务中记录了出错的网址数,并且在日志中也做了说明。 如果任务采集的网址数量和出错的网址数量相等,则判断此任务执行失败。 请通过本站下载,版本已经更新。

Posted in:   Tags:
这封感谢信的意义可能不大,也不会有多少人可以看到,但还是要说,主要是感谢Miller和亿渡互联的客服。 建这个网站之前选择了很多的开源博客系统,因对.net比了解,所以需要在.net平台下进行选择,国内大部分博客都是asp,对asp不是很熟悉,所以最终选择了blogengine.net,选择blogengine.net最重要的原因也是因为他是.net平台下的,且代码完全开放,代码层次结构也很好,便于扩展和维护。在本地做好配置之后,上传到了虚拟主机,确发现无法应用。在问题排查的过程中,得到了Miller的很多帮助,让我很快的了解了blogengine.net,并最终找到问题所在,使... [更多...]

Posted in:   Tags:
一孑 posted on 四月 15, 2009 07:19
此段时间修改了不少bug,同时优化了一些功能,bug信息还未整理,优化的功能年如下: 1、采集任务在设定数据导出时,增加了文本及excel格式,去除了mssqlserver; 2、手动导出数据放到了后台线程完成,避免由于大数据量造成的界面线程不响应,同时在主界面状态栏增加了进度条以显示导出的状态; 3、增加了采集任务导入的功能,系统在进行任务修改时,会自动保存任务备份,当任务遭到破坏 ,可导入此任务进行数据恢复。此类任务都以~打头; 4、取消了最小化窗体隐藏托盘图标的功能,增加了系统退出选项(最小化隐藏托盘图标及直接退出); 5、 其他修正... [更多...]

Posted in:   Tags:
一孑 posted on 四月 3, 2009 16:44
准确的说,soukey采摘此部分是参照了网上一个多线程的例子来设计的。这个例子设计的还是很完善的。在很多方面都做了考虑。 [更多...]

Posted in: 技术文档  Tags:
一孑 posted on 四月 3, 2009 16:41
data:存放采集的数据(任务名+时间(datetime.ToFileTime()).xml),及采集完成的任务索引文件(index.xml); img:系统运行时需要的图片资源; Tasks:存放任务信息,此目录下会根据任务分类建立新的目录,每个目录下都具备index.xml文件,用于保存任务文件索引信息,同时此目录下还具备两个特殊文件和一个文件夹        Taksrun.xml,运行区任务索引文件        I... [更多...]

Posted in: 技术文档  Tags:
一孑 posted on 四月 3, 2009 16:40
Soukey采摘结构比较简单,可以分为五个部分: 1、  网址解析及数据下载:主要对需要采集的网址进行识别,并根据指定的网址进行数据下载,然后根据采集规则进行数据采集。网址的识别可以对带参数的网址进行解析,同时也可以识别具备导航规则的网址。 2、  多线程管理:就是实现数据采集的多线程处理。 3、  数据发布:将采集的数据发布到数据库,同时也可手工导出到文本文件或Excel。发布过程也是多线程处理,但仅限于是多任务线程,不支持单任务多线程的处理。发布做的简单了,主要考虑发布功能后期会进行较大的改动,当前在未经过数据加工的情况... [更多...]

Posted in: 技术文档  Tags:

Blog Roll

    最新评论

    一孑工作室声明
    本站文章均为原创,如果转载请注明出处。

    © Copyright 2012『一孑工作室』
    管理我的网站
    京ICP备10018014号