首页编程PHP典型模块内容自动采集器模块文章详细

自动采集数据库设计

原创 2023-10-03 21:07:31 144

内容自动采集器模块的数据库设计目的是满足两个需求:一个是规则存储表(spiders)存储采集规则、采集源URL地址、栏目分类;另一个是采集内容表(articles)用来存储采集到的数据。

1. 规则存储表设计

规则存储表(spiders)是内容采集模块的核心,它由两个功能部分组成,一部分是存储采集规则(页面网址提取规则、页面内容提取规则);另一部分是辅助功能(栏目名称、已采集数、栏目分类标识)。了解清楚功能划分之后,下面来看具体的设计步骤。

(1)建立get_content数据库,SQL语句如下:

CREATE DATABASE 'get_content';

(2)在get_content数据库中建立一个命名为spiders的“规则存储表”,结构如表8.1所示。创建表及相关字段的SQL语句如下:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

-- 
-- 数据库: `get_content`
-- 

-- --------------------------------------------------------
-- 
-- 表的结构 `spiders`
-- 

CREATE TABLE `spiders` (
  `ID` int(10) unsigned NOT NULL auto_increment,
  `Title` varchar(200) NOT NULL,
  `ListPreg` mediumtext NOT NULL,
  `ContentPreg` mediumtext NOT NULL,
  `Count` int(10) unsigned NOT NULL default '0',
  `EnterUrl` varchar(200) NOT NULL,
  `Category` smallint(5) unsigned NOT NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

表 1.1规则存储表

字 段 数据类型 长 度NULL默认值字段说明
IDint10auto _increment自增主键
Titlevarchar200

栏目名称
ListPregmediumtext


页面网址提取规则
ContentPregmediumtext


页面内容提取规则
Countint10否 
已采集数
EnterUrlvarchar200

采集源 URL 地址
Categorysmallint5

分类标识

注意:以上字段是一个采集规则表的基础,根据业务的扩展可以添加用于标识VIP会员的vip字段等。

2. 采集内容表设计

采集内容表(articles)的作用是存储采集到的数据,从命名就可以看出它的设计和一般文章内容表有很多相似的地方。这部分的数据库设计相对更简单些,只有一个“采集内容表”,它被用来记录采集到的文件的详细信息,同时可以提供查询。但是这类表的设计在其他项目中也很常见,适用于多种业务模型。读者在理解含义的基础上可以做适当的扩展,使之适用于更多的业务模型。

get_content()数据库中建立一个命名为articles的“采集内容表”,如表8.2所示。创建表及相关字段SQL语句如下:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

-- 
-- 数据库: `get_content`
-- 

-- --------------------------------------------------------
-- 
-- 表的结构 `articles`
-- 

CREATE TABLE `articles` (
  `ID` int(10) unsigned NOT NULL auto_increment,
  `Title` varchar(200) NOT NULL,
  `Click` int(11) NOT NULL,
  `Content` longtext,
  `Date` date NOT NULL,
  `Category` smallint(6) NOT NULL,
  PRIMARY KEY  (`ID`),
  KEY `Category` (`Category`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=159 ;

表 8.2采集内容表

字 段 数据类型 长 度NULL默认值字段说明
IDint11
自增主键
Titlevarchar200文章标题
Clickint11文章内容中包含的链接
Contentlongtext
记录页面内容
Datedate
否 采集日期
Categorysmallint6
栏目分类标识


推荐