掠夺者—自己写新闻采集器(1)

来源:互联网 发布:喵星人软件 编辑:程序博客网 时间:2024/04/28 19:00

  很多免费的采集器都会采到不少多余的内容,比如被采网站的logo、文字注释、广告等,新闻被采集下来还要人工编辑,很是麻烦。于是空闲至于尝试设计了一个无需人工干预和二次编辑的采集器,直接将采下来的新闻过滤掉多余内容,并发布到网站上。  

  这个采集器要实现的功能有:

  1 每隔两小时自动从网上采集最新的、不重复的、非独家发布的、不带敏感关键字眼的各类新闻各20条;

  2 实现对新闻中图片的下载,对各种新闻链接、广告(图片或视频)、相关阅读等无用信息的过滤;

  3 将采到的新闻直接发布到网站,免去一切人工操作!

  4 每隔一小时采集一次天气预报,并发布到网站,同时在早上7点半和下午2点半往本组成员手机发送天气预报(嘿嘿,相当于免费定了一个天气预报业务)。

  5 每隔一小时对主页进行一次静态化,加快访问速度。

  采集器选用的开发语言为JAVA,利用开源项目htmlparser实现网页的抓取,开发环境为my eclipse 6.0,后来改为eclipse 3.4,执行方式为打成jar包,在命令行下执行。工程的结构如下图所示(公司名已被遮盖):

掠夺者工程结构图

 

  我来介绍一下各个类的功能

  TimeRobot 掠夺者(我给采集器起的名字)的入口,定义了main函数

  Article 一个JavaBean,定义了文章的标题、正文等

  Common 公共函数类,定义了被多个类调用的各种函数,如下载图片、格式化时间、过滤等

  SqlDao 封装了所需的数据库方法

  AritcleDao 没用的类(本来想用iBatis框架的)

  GetLocalNews 采集本地新闻

  GetNewGames 不理这个东西,呵呵,空类,截图时忘记干掉了

  GetWapNews 采集WAP新闻

  GetWeatherForecast 采集天气预报

  GetWebNews 采集WEB新闻

  NewsGeter 采集新闻,掠夺者仅认识NewsGeter,这个类封装了各种新闻的采集

  StaticIndex 静态化主页

  下面介绍一下各类之间的关系

  掠夺者的入口为TimeRobot(时间机器人),TimeRobot中调用了三个定时任务,分别是定时新闻NewsGeter、定时天气预报GetWeatherForecast和定时静态化主页StaticIndex,如下图所示:

掠夺者各类之间的关系

原创粉丝点击