图4.8 点击添加栏目按钮之后,弹出添加栏目交互模态框。
栏目名称为此栏目的名字,栏目位置是选择位于现有的导航里面之一,栏目宽度可以选择半栏或者通栏,暂时不提供自定义宽度;栏目关键字输入。其中栏目中的所有文章列表都是根据关键字查询出来。
图4.10 栏目
图4.9 是模态框中所填内容符合要求,并点击确定按钮创建成功后的栏目框。
栏目所有的文章都是根据输入关键词‘魅族’在本地数据库中搜索出来的文章,后面的跟着文章的来源和日期。如果想直接查看文章,那直接点击文章标题即可查看整篇文章。其中文章内容全部是在数据库中的存储的文章内容,其中把所有的html标签全部去除,只保留了
和标签,所以大致保留了文章的布局和文章图片。
如图4.10所示:
图4.11 文章内容
22
如果文章列表中没有想看的文章,可以直接点击‘查看更多’,即可看到根据关键词查看的所有文章,在所有文章中可以中也可以直接查看文章内容也可以直接打开新的页面查看原文章如图4.12所示:
图4.12 查看更多页面
那么如果没有匹配到文章,栏目则显示为空,那么这个栏目就废弃了。就是为了防止类似的情况发生,在栏目的右上角设置了一个栏目设置按钮,如图4.13所示:
图4.13 栏目设置
23
点击编辑栏目,可以重新针对栏目属性进行修改,包括针对栏目关键词的修改,将重新赋予栏目新的生命。如果真不需要类似的此栏目,则可以直接点击移除栏目,就可以直接删除。那么点击编辑栏目程序运行的关键代码见附录代码片段4.
第4.4节 爬虫设计与实现
爬虫数据采集,就是通过抓取事先决定好的网站网址,且根据网站的文章列表生文章的URL列表。然后进行文章网页的抓取、分析并存入数据库中。爬虫关键代码见附录代码片段5。工作流程图如图4.14所示:
解析源文件 网站根域名 抓取主页面 URL列表 采集数据库 页面抓取
图4.14 爬虫工作流程图
第4.5节 系统数据库结构
24
表4.1 用户表(user)
Field Name id Field Type int Size 11 10 10 Null 否 否 否 Primary key 是 否 否 Implementation 用户id 用户名 用户密码 user_name varchar user_password
varchar 表4.1 频道表(channel)
Field Name channel_id channel_name order_id id
表4.1 栏目表(columns)
Field Name column_id column_name order_id style rules channel_id
Field Type int varchar int int Size 11 10 11 11 Null 否 否 否 否 Primary Foreign Implemenkey key tation 是 否 频道id 否 否 否 否 否 否 频道名 顺序id 用户id Field Type int varchar int varchar varchar int Size 11 10 11 10 50 11 Null 否 否 否 否 否 否 Primary Foreign Implementkey key ation 是 否 栏目id 否 否 否 否 否 否 否 否 否 是 栏目名称 栏目加载顺序id 栏目样式 栏目的关键字 频道id 25
表4.1 管理员表(admin)
Field Field Size Name Type admin_iint 11 d admin_nvarchar 10 ame admin_pint 11 assword
Null 否 否 否 Primary key 是 否 否 Implementation 频道id 频道名 顺序id
26