基于网络爬虫的电子易购软件设计与实现
2017-03-06孙遒
孙遒
摘 要: 网上购物已经普及,电子商务网站日渐增多,如何从这些网站中快速地选择出自己喜爱的商品是一件不小的工作。提出一种电子易购的解决方法。该方法通过网络爬虫在整个电子商务网站系统上抓取有用的信息存储在数据库中,然后对相关数据进行分析,利用Spring+Struts2+Hibernate+MySQL技术实现了基于B/S模型架构的网站展示给用户,使用户更了解各个商城电子商品之间的差异,进而选择更适合自己的商品。通过网络实验,证明该方法行之有效。
关键词: 电子易购; 电子商务; 流量; 网络爬虫
中图分类号:TP274 文献标志码:A 文章编号:1006-8228(2017)02-41-04
0 引言
当今电子商务业务开发如火如荼。在法、德等欧洲国家,电子商务所产生的营业额已占商务总额的1/4,在美国已占1/3以上,而这些欧美国家电子商务的历史也不过十几年的时间。在美国,美国在线(AOL)、雅虎、电子港湾等著名的电子商务公司在1995年前后开始赚钱,IBM、亚马逊书城、戴尔电脑、沃尔玛超市等电子商务公司在各自的领域更是取得了令人不可思议的巨额利润[1,5]。
中国电子商务始于1997年,如果说美国电子商务是“商务推动型”,那么中国电子商务则更多的是“技术拉动型”,这是在发展模式上中国电子商务与美国电子商务的最大不同[6,10]。在美国,电子商务实践早于电子商务概念,企业的商务需求“推动”了网络和电子商务技术的进步,并促成电子商务概念的形成。当Internet时代到来的时候,美国已经有了一个比较先进和发达的电子商务基础。在中国,电子商务概念先于电子商务应用,“启蒙者”是IBM等IT厂商,网络和电子商务技术需要不断“拉动”企业的商务需求,进而引致中国电子商务的应用与发展。了解这一不同点是很重要的,这是中国电子商务发展的一大特点,也是理解中国电子商务应用与发展的一把钥匙。
电子商务网站发展繁荣的今天 ,面臨多元化的电子商务网站。对于用户来说不知道去哪里买电子产品而显得十分头痛。导航就是一个可以指导用户购物的电子产品,为用户选择商品提供帮助,可使用户更加方便、快捷,并防止不懂电子产品的用户更优惠的选择适合自己的产品[11,14]。
1 系统结构
电子易购软件的模块设计如图1所示。
2 项目管理工具设计
Maven可以对第三方依赖库进行统一的版本管理,其具有统一项目的目录结构,可以保证所有项目的目录结构都是一样的,目录结构统一的好处是,要找源代码就去src/main/java/下,要找需要放到classpath下 的资源,就去src/main/resources/下。把软件开发的过程划分成了几个经典阶段,比如先生成一些Java代码,再把这些代码复制到特定位置,然后编译代码,复制需要放到 classpath下的资源,再进行单元测试,单元测试都通过了才能打包和发布。Maven还支持多种插件,自动生成项目网站和报表。
使用Ant,最令人头疼的就是要为不同的项目写很多build.xml脚本,而且这些脚本还不太通用,现在可以使用Maven提供的这些经典构建阶段,让每个项目只经过相同的步骤,从源代码一步一步变成可以部署的成品。如果还要什么附加功能,则把对应的插件绑定到一个构建阶段上,那么到了执行这个构建阶段时,就会执行绑定的插件了。
如果说Ant可以使用ivy实现第三方依赖库的统一管理,如果说Ant可以自己统一项目的目录结果,如果说Ant支持插件更灵活,那么这些特性绝对没有Maven强。
Maven可以自动为项目生成一个网站,里面包含了项目信息,参与人,项目管理相关的资源,第三方依赖库,使用的插件,以及通过其他扩展插件生成的各种报表。Ant 使用某些插件也可以生成html格式的报表,但是各个报表之间都没什么关联,不像Maven中将网站和报表都关联在一起,查看起来十分方便。Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
通过MyEclipse创建Maven项目名为:gobuy,在main文件夹下建立webapp文件夹,将其作为Web的根目录。在Maven的pom.xml文件中加入jar统一包进行管理。
3 系统构架与实现设计
现在流行的框架有很多,例如Spring,Struts2,Hibernate等等。其中Spring+Hibernate+Struts2最为广泛使用,并且可以把大学的所学应用于实际项目中。而且这三个都是轻型框架,很多代码不用自己编写,是目前中小公司用的最多的框架之一,若架构搭得好,开发速度比java项目会提高不少,维护也比较方便,可拓展性强,加上一堆的开源,可以丰富项目。
即使是使用S2SH开发,也有很多种形式,比如按配置文件,就分为配置文件写在.XML文件中的,或者是配置在Spring的bean文件中的,又或者是零配置的全注解形式。Spring还可以对Struts2和Hibernate进行管理,完全不需要知道Struts2和Hibernate的实现代码就可以编写程序,实现简单,快捷的敏捷式开发。Spring还会自动扫描被注解的类,然后创建在对象池中,在需要的时候取出使用,真正达到了即用即取的低耦合性。项目采用S2SH框架开发,使用的注解形式取代配置文件。
4 爬虫设计
手写爬虫和Heritrix的选择。Heritrix是IA的开放源代码,可扩展的,基于整个Web的,归档网络爬虫工程。它是很好的爬虫框架,有很好的可扩展性。但其配置复杂,使用不是很方便,其机构也极其复杂。所以这里新写了一个爬虫实现,结合HtmlParser解析返回的页面来实现功能。
爬虫和多线程的实现(其中一个爬虫为例):
通过Strust2标签获得从index.action中传来的vgProductSku对象,值以获得每个结果集,将对象中的属性显示在相应位置。页面如图3所示。
7 结束语
经过三个月的时间完成了易购导航网站的开发,基本功能都已实现。爬虫采用多线程技术,6个爬虫在网络上不断爬行,相不干扰,获得了大量的电子商品信息。可以对比商品信息,页面美观,操作简单,有很好的用户体验。可以注册会员,登录,并在网站上下单,或去第三方网站上查看更详细的商品信息。网站致力于对商品的分析,给用户更多的选择空间和更好的选择条件。
本系统采用面向对象的开发原理,方便以后扩展新的功能。系统在开发过程中,无时无刻不考虑着爬虫的性能优化和用户的体验,将系统做的更好,让功能更加完善。对于商品信息的对比,还可以进一步设计抓取商品评论、游览次数、购买次数等信息,统一进行数据处理,给用户提供更完整,更好的选择。网站还可以进行更精确的商品分类和提供更准确的搜索。
系统给用户网上购物带来的是一个全新的体验,给电子商务网站通过广告和商品信息陈列带来的是無限的流量收益。将来一定有更好的发展前景。
参考文献(References):
[1] 王善发,吴道荣.Java编程语言构造方法研究[J].保山学院学
报,2011.2:23-25
[2] 孙媛,陈丽梅.数据结构在Java语言中的实现[J].电脑学习,
2008.1:53-55
[3] 麻孜宁,伊浩,李祥.Java多线程并发系统中的安全性与公平
性[J].计算机技术与发展,2006.2:14-20
[4] 陈牧歌,王健.Ajax技术在Web开发中的应用[J].电脑学习,
2010.4:103-105
[5] 陆荣幸,郁洲,阮永良,王志强.J2EE平台上MVC设计模式的
研究与实现[J].计算机应用研究,2003.3:108-200
[6] 黄海,朱跃龙.J2EE设计模式与框架技术的应用研究[J].计算
机与现代化,2006.5:15-19
[7] 刘星沙,罗昔军.基于MVC模式的Struts和Spring整合框架的
研究与应[J].湘潭大学自然科学学报,2007.1:209-211
[8] 权宁一.基于JSP技术的企业电子商务系统[J].微处理机,
2005.6:147-151
[9] 张承光.电子物流网络的实现与构想[J].互联网周刊,
1999.24:364-365
[10] 孙钊.我国电子商务发展的现状与对策[J].经济学情报,
2000.4:67-69
[11] 谌燕,赵定远.基于AJAX的异步Web开发模式[J].成都大
学学报(自然科学版),2007.4:244-246
[12] 雷丽秀.互联网搜索引擎技术及展望[J].科技信息(学术研
究),2008.20:17-21
[13] 丁振国,陈静,李凡.基于JSP建立电子商务网站的核心技术[J].
计算机应用研究,2002.7:159-161
[14] 郭晓艳,刘晓霞,朱洁娜.基于JSP的电子商务网站的构建技
术[J].微机发展,2005.6:222-223