基于网络爬虫的四川大学资讯整合网站的研究与设计
作者:***
来源:《科协论坛·下半月》2013年第07期
        摘 要:由于工作与生活节奏的加快,人们的时间呈现出碎片化,新媒体因迎合这种现状而生。随着互联网信息呈“爆发式”增长,人们更需要新媒体能够及时、准确地提供资讯,资源整合就成了其中的必要环节。以四川大学为例,利用网络爬虫技术整合四川大学学生经常浏览的教务处网站、团委网站、学生工作处网站的通知及新闻,以计算机科学技术解决问题,满足学生体对新媒体运营效果的期望。
        关键词:网络爬虫 新媒体 研究 设计
        中图分类号:TP393 文献标识码:A 文章编号:1007-3973(2013)007-063-03
        1 引言
        随着新媒体的飞速发展与逐渐成熟,新媒体这一媒体形式凭借其便利、便捷的特点获得了
人们的认可和关注。由于新媒体平台的数量增长,人们已经逐渐迷失在浩瀚的网络中,无法在有限的时间内及时、准确地获得想要的信息,所以对新媒体进行有效的资源整合成了解决这一问题的首要途径。本文以四川大学教务处网站、四川大学团委网站、四川大学学生工作处网站为研究背景,结合计算科学技术,提出了新媒体资源整合的方法,使广大的学生体在有限的课余时间内准确、高效地了解校内外的资讯。
        本文主要工作包括:(1)研究四川大学网络媒体现状;(2)提出新媒体平台数量增长背景下,如何及时、高效地获取资讯的办法;(3)介绍新媒体资源整合的核心技术 — 网络爬虫技术及相关关键技术;(4)结合网络爬虫技术设计资源整合网站,整合四川大学教务网站、学生工作处网站、团委网站的资讯。
        2 四川大学网络媒体现状分析
        经调查,四川大学学生最经常访问的校园官方网络平台有“四川大学教务处网站”、“四川大学团委网站”、“四川大学学生工作处网站”,其主要原因在于以上几个网络媒体平台经常颁布贴近学生校园生活的资讯信息,学生急需从中获取及时的资讯了解校园内的实时动态。现阶段,四川大学官方网络媒体具有以下几个特点:
        2.1 资讯重复出现,缺乏系统性
        新媒体飞速发展,其主要原因在于其便捷和便利的特点。经过调查发现,四川大学教务处网站、团委网站、学生工作处网站上经常出现资讯重复的现象,一则通知或新闻因其工作性质与网站直属单位相同而被同时发布在多个网络平台上。网页的主页设计中,一般会将5-8条的资讯显示在主页面上,其余的资讯需点击“更多”进行查看。学生在浏览网站了解资讯时,主要关注的就是页面中通知栏、新闻栏的即时信息,很少点击“更多”查看未全部显示的信息,如此重复信息的出现,极可能导致信息的更新而使学生错过还未阅读的资讯信息。
        2.2 资讯分布广,使用效率低
        资讯分布广是现阶段四川大学网络平台的一个主要特点,同时也是一个亟待解决的问题。广泛的信息分布使学生在浏览信息时疲于奔命,再加之校园网刷新速度较慢,很大程度上降低了学生的使用效率。效率降低了,也违背了新媒体这一新兴产业的初衷,高效率的获取资讯是广大学生的需求。
        3 及时、高效地获取资讯的对策研究
        3.1 及时性
        所谓及时性,需要使学生在浏览网页时能第一时间了解到同步更新的资讯。
        3.2 高效性
        所谓高效性,需要使学生在有限的时间内尽可能多得获得有效的资讯。
        结合以上两点,资源整合概念是解决这一问题的最佳对策。
        资源整合是系统论的思维方式,针对本文提出的问题,就是要通过科学化的方法将四川大学教务处网站、团委网站、学生工作处网站彼此相关但又分离的资讯,通过计算机科学技术的方法整合到一起。
        具体方法是设计一个四川大学资讯整合网站,将三个网站的通知、新闻获取到一个网站上,使学生在登陆浏览一个网站时就可以关注到三个网站的实时信息。同时,网站将使用自动更新技术实现及时性,使用去除重复的方法实现高效性。
        4 实现资源整合的核心技术
        网络爬虫是在搜索引擎领域中广泛使用的技术,而其主要是根据用户的需求,在制定的网络范围内搜寻消息。这项技术可以运用在实现本文提出的资源整合理念上。本节将概述网络爬虫技术并介绍实现网络爬虫相关技术。
        4.1 网络爬虫技术概述
        网络爬虫是通过网页的链接地址寻网页的程序,如图1所示,它从网站的某一个页面开始读取网页的内容,到网页的其他链接地址,然后不断地递归循环,直到把网站内所需资源遍历完整为止。
        在抓取网页的时候,网络爬虫一般有两种策略:(1)广度优先策略;(2)深度优先策略。
        4.2 Java语言
        Java语言具有简单性、多线程性、与平台无关性的特点。
        网络爬虫需要对多个页面进行解析,显然,单线程的工作效率极低,程序会因此出现瓶
颈。单线程技术需要一个接一个地等待响应,等待时间将是每个网页请求等待响应的时间。因此,多线程是实现网络爬虫的必要技术。
        4.3 Jsoup Html解析工具
        Jsoup是一种Java的Html解析器,可以直接解析某个URL地址、HTML文本内容。Jsoup提供了较为方便的API,可以通过类似于JQuery的操作方法进行数据操作。
        主要功能有:从URL中直接获取页面HTML,使用DOM、CSS选择器查、获取数据,实现对HTML的简单操作。
        4.4 JDBC数据库访问
        网络爬虫解析HTML后,将获取有用信息储存在数据库。Java提供了JDBC(Java Data Base Connectivity)接口来进行数据库访问。JDBC的用途是通过向数据库发送SQL请求语句,让使用者从数据库中获取请求的信息。
        5 结合网络爬虫,资源整合网站的具体实现
        5.1 主要算法实现
        针对四川大学教务处网站、四川大学学生工作处网站、四川大学团委网站的页面特性,设计网络爬虫算法的方法基本一致,这里以抓取四川大学团委网站通知内容为例,详细分析算法的实现方法。实现网络爬虫算法的主要步骤有解析HTML页面,使用Jsoup抓取需要的信息。
        (1)解析HTML页面。
        使用Google Chrome浏览器的审查元素功能,分析四川大学团委网站通知栏的HTML结构。如图2 所示,首先定位通知栏在HTML页面中的位置,然后定位进行进一步的解析操作。
        以四川大学团委网站通知栏中《关于组织开展“中国梦·为梦想改变的21天”网络筑梦活动的通知》为例,通知的链接地址和标题位于Marquee标签内td标签内。
        (2)使用Jsoup抓取信息。
        由对HTML页面的分析可以确定通知栏内的所有通知都是位于Marquee标签内,所以使用Jsoup中提供的API链接至四川大学团委网站,并调用select方法将读入的HTML定位至Marquee标签,具体实现代码如下:
        t("http://tuanwei.scu.edu/tw/index.php").get().select("marquee a");
        定位之后,需要对Marquee标签内内容进一步解析,将通知的标题title和通知的超链接地址href进行提取,并根据链接地址提取通知的具体内容,具体实现代码如下:
        String href = elem.attr("href");
        Document doc = t("http://tuanwei.scu.edu/tw/" + href).get();
        String time = doc.select("#articlelink tr:eq(1) td").first().text();
        String content = doc.select(".articlecontent").first().text();
        5.2 网站基本框架
chrome浏览器国内能用吗        图3 框架结构
        网站的设计使用MVC(Model View Controller)框架,是模型、视图、控制器三个部分组成。MVC框架实现了数据模型和用户界面的代码分离。如图3所示,网站主体框架分为表现层、服务层、持久层。
        表现层:Layout、Panel、Widget、Style;
        服务层:LimitsValidtors、ConnectionPool;
        持久层:@Column、AvSql。
        5.3 网站数据库防重复内容机制
        网站的数据库使用PostgresQL数据库实现,数据库的存储与访问通过JDBC接口实现。由于四川大学网站更新频率较低,网络爬虫进行信息抓取时经常会出现重复数据的现象,为了防止数据冗余,在网络爬虫执行时嵌入了如下代码:
        Notice tmp = ateNoticeDao().find(Notice.TITLE + "=’" + title + "’");
        if(tmp != null)
        {continue;}
        爬虫每次获取通知标题后,与数据库已有数据进行比对,如果存在相同的标题则直接执行continue语句进行下条标题的抓取。
        5.4 网站的自动更新机制
        为了实现网站与四川大学教务处网站、四川大学学生工作处网站、四川大学团委网站的信息同步及时更新,网站设计了自动更新机制。爬虫程序每隔24小时执行一次,并将新的信息存入数据库,实现代码如下:
        public void contextInitialized(ServletContextEvent arg0)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。