用delphi制作新闻采集程序(一)

今天,我们讨论的是网站新闻采集程序的制作。所谓新闻采集程序,就是自动抓取网上信息,并保存到自己网站数据库的一种程序。现在很多大型网站都有自己的新闻采集系统,其中许多采集系统价值不菲。通过这篇文章,我希望大家都能自己做一个采集程序,来维护自己的网站。

为了便于理解,先阐述一下本文的新闻采集程序的一些基本信息。这里的新闻系统,是用delphi实现,并将采集到的数据保存到本地access数据库。所以,这将是一个基与桌面的采集程序,而不是类似动易采集的基于浏览器。个人认为,基于桌面的采集系统,更容易实现强大的功能,有更高的稳定和安全性能。而经过扩展,大家完全可以把这个例子做成可以访问远程数据库的大型采集系统。

在说如何制作采集程序之前,我们先来定义一个本地access数据库,用来存取采集到的信息。这个数据库只有一个表,表名”T_Article”,该表有ArticleIDClassIDTitleKeywordCopyFromContent六个字段,分别代表新闻的编号、类别编号、标题、关键字、出处、内容。

首先,所谓采集,第一步当然是要能抓取信息,并且是能按照用户的要求,从网上抓取相关信息。这里假设我们要抓取 http://dev.csdn.net/articlelist.aspx?c=2 的文章,加到自己网站的“delphi技术这么一个栏目。首先要做的,是读取 http://dev.csdn.net/articlelist.aspx?c=2 上的文章列表,然后通过列表索引,逐篇将文章正文内容读到我们的网站数据库。接下来将是关键,如何采集 http://dev.csdn.net/articlelist.aspx?c=2 上的文章列表。这里分为两步,一、利用delphi网络功能,读取 http://dev.csdn.net/articlelist.aspx?c=2 HTML源文件。二、通过分析源文件,截取其中列表部分。第一步的实现,可以用delphiindy控件族的idHTTP控件,该控件在indy Clients面板,该控件的具体使用,将在后面讲解,现在我们只要知道,给定一个URL地址,就能通过indy控件返回该URL的网页源代码。第二步的实现,则是简单的字符串处理了。

我们先来讨论第二步如何实现,打开http://dev.csdn.net/articlelist.aspx?c=2  可以看到左边是“我的技术中心”“最新文档列表”等东西,这些和我们没有关系。右边则是一篇篇文章的列表,这些就是我们要的。如何截取列表里的内容呢?查看网页的源代码,CTRL+F查找“标题”,可以发现这样一段代码:



bordercolorlight="#000000" bordercolordark="#FFFFFF">


标题

对了,这就是列表的开始,那么列表结束的位置,显然是在这里:

2475 篇文章 1/71 第一页 |
上一页 |
下一页 |
末页 |
跳转到