孫遒
摘 要: 網(wǎng)上購(gòu)物已經(jīng)普及,電子商務(wù)網(wǎng)站日漸增多,如何從這些網(wǎng)站中快速地選擇出自己喜愛的商品是一件不小的工作。提出一種電子易購(gòu)的解決方法。該方法通過(guò)網(wǎng)絡(luò)爬蟲在整個(gè)電子商務(wù)網(wǎng)站系統(tǒng)上抓取有用的信息存儲(chǔ)在數(shù)據(jù)庫(kù)中,然后對(duì)相關(guān)數(shù)據(jù)進(jìn)行分析,利用Spring+Struts2+Hibernate+MySQL技術(shù)實(shí)現(xiàn)了基于B/S模型架構(gòu)的網(wǎng)站展示給用戶,使用戶更了解各個(gè)商城電子商品之間的差異,進(jìn)而選擇更適合自己的商品。通過(guò)網(wǎng)絡(luò)實(shí)驗(yàn),證明該方法行之有效。
關(guān)鍵詞: 電子易購(gòu); 電子商務(wù); 流量; 網(wǎng)絡(luò)爬蟲
中圖分類號(hào):TP274 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2017)02-41-04
0 引言
當(dāng)今電子商務(wù)業(yè)務(wù)開發(fā)如火如荼。在法、德等歐洲國(guó)家,電子商務(wù)所產(chǎn)生的營(yíng)業(yè)額已占商務(wù)總額的1/4,在美國(guó)已占1/3以上,而這些歐美國(guó)家電子商務(wù)的歷史也不過(guò)十幾年的時(shí)間。在美國(guó),美國(guó)在線(AOL)、雅虎、電子港灣等著名的電子商務(wù)公司在1995年前后開始賺錢,IBM、亞馬遜書城、戴爾電腦、沃爾瑪超市等電子商務(wù)公司在各自的領(lǐng)域更是取得了令人不可思議的巨額利潤(rùn)[1,5]。
中國(guó)電子商務(wù)始于1997年,如果說(shuō)美國(guó)電子商務(wù)是“商務(wù)推動(dòng)型”,那么中國(guó)電子商務(wù)則更多的是“技術(shù)拉動(dòng)型”,這是在發(fā)展模式上中國(guó)電子商務(wù)與美國(guó)電子商務(wù)的最大不同[6,10]。在美國(guó),電子商務(wù)實(shí)踐早于電子商務(wù)概念,企業(yè)的商務(wù)需求“推動(dòng)”了網(wǎng)絡(luò)和電子商務(wù)技術(shù)的進(jìn)步,并促成電子商務(wù)概念的形成。當(dāng)Internet時(shí)代到來(lái)的時(shí)候,美國(guó)已經(jīng)有了一個(gè)比較先進(jìn)和發(fā)達(dá)的電子商務(wù)基礎(chǔ)。在中國(guó),電子商務(wù)概念先于電子商務(wù)應(yīng)用,“啟蒙者”是IBM等IT廠商,網(wǎng)絡(luò)和電子商務(wù)技術(shù)需要不斷“拉動(dòng)”企業(yè)的商務(wù)需求,進(jìn)而引致中國(guó)電子商務(wù)的應(yīng)用與發(fā)展。了解這一不同點(diǎn)是很重要的,這是中國(guó)電子商務(wù)發(fā)展的一大特點(diǎn),也是理解中國(guó)電子商務(wù)應(yīng)用與發(fā)展的一把鑰匙。
電子商務(wù)網(wǎng)站發(fā)展繁榮的今天 ,面臨多元化的電子商務(wù)網(wǎng)站。對(duì)于用戶來(lái)說(shuō)不知道去哪里買電子產(chǎn)品而顯得十分頭痛。導(dǎo)航就是一個(gè)可以指導(dǎo)用戶購(gòu)物的電子產(chǎn)品,為用戶選擇商品提供幫助,可使用戶更加方便、快捷,并防止不懂電子產(chǎn)品的用戶更優(yōu)惠的選擇適合自己的產(chǎn)品[11,14]。
1 系統(tǒng)結(jié)構(gòu)
電子易購(gòu)軟件的模塊設(shè)計(jì)如圖1所示。
2 項(xiàng)目管理工具設(shè)計(jì)
Maven可以對(duì)第三方依賴庫(kù)進(jìn)行統(tǒng)一的版本管理,其具有統(tǒng)一項(xiàng)目的目錄結(jié)構(gòu),可以保證所有項(xiàng)目的目錄結(jié)構(gòu)都是一樣的,目錄結(jié)構(gòu)統(tǒng)一的好處是,要找源代碼就去src/main/java/下,要找需要放到classpath下 的資源,就去src/main/resources/下。把軟件開發(fā)的過(guò)程劃分成了幾個(gè)經(jīng)典階段,比如先生成一些Java代碼,再把這些代碼復(fù)制到特定位置,然后編譯代碼,復(fù)制需要放到 classpath下的資源,再進(jìn)行單元測(cè)試,單元測(cè)試都通過(guò)了才能打包和發(fā)布。Maven還支持多種插件,自動(dòng)生成項(xiàng)目網(wǎng)站和報(bào)表。
使用Ant,最令人頭疼的就是要為不同的項(xiàng)目寫很多build.xml腳本,而且這些腳本還不太通用,現(xiàn)在可以使用Maven提供的這些經(jīng)典構(gòu)建階段,讓每個(gè)項(xiàng)目只經(jīng)過(guò)相同的步驟,從源代碼一步一步變成可以部署的成品。如果還要什么附加功能,則把對(duì)應(yīng)的插件綁定到一個(gè)構(gòu)建階段上,那么到了執(zhí)行這個(gè)構(gòu)建階段時(shí),就會(huì)執(zhí)行綁定的插件了。
如果說(shuō)Ant可以使用ivy實(shí)現(xiàn)第三方依賴庫(kù)的統(tǒng)一管理,如果說(shuō)Ant可以自己統(tǒng)一項(xiàng)目的目錄結(jié)果,如果說(shuō)Ant支持插件更靈活,那么這些特性絕對(duì)沒(méi)有Maven強(qiáng)。
Maven可以自動(dòng)為項(xiàng)目生成一個(gè)網(wǎng)站,里面包含了項(xiàng)目信息,參與人,項(xiàng)目管理相關(guān)的資源,第三方依賴庫(kù),使用的插件,以及通過(guò)其他擴(kuò)展插件生成的各種報(bào)表。Ant 使用某些插件也可以生成html格式的報(bào)表,但是各個(gè)報(bào)表之間都沒(méi)什么關(guān)聯(lián),不像Maven中將網(wǎng)站和報(bào)表都關(guān)聯(lián)在一起,查看起來(lái)十分方便。Maven是基于項(xiàng)目對(duì)象模型(POM),可以通過(guò)一小段描述信息來(lái)管理項(xiàng)目的構(gòu)建,報(bào)告和文檔的軟件項(xiàng)目管理工具。
通過(guò)MyEclipse創(chuàng)建Maven項(xiàng)目名為:gobuy,在main文件夾下建立webapp文件夾,將其作為Web的根目錄。在Maven的pom.xml文件中加入jar統(tǒng)一包進(jìn)行管理。
3 系統(tǒng)構(gòu)架與實(shí)現(xiàn)設(shè)計(jì)
現(xiàn)在流行的框架有很多,例如Spring,Struts2,Hibernate等等。其中Spring+Hibernate+Struts2最為廣泛使用,并且可以把大學(xué)的所學(xué)應(yīng)用于實(shí)際項(xiàng)目中。而且這三個(gè)都是輕型框架,很多代碼不用自己編寫,是目前中小公司用的最多的框架之一,若架構(gòu)搭得好,開發(fā)速度比java項(xiàng)目會(huì)提高不少,維護(hù)也比較方便,可拓展性強(qiáng),加上一堆的開源,可以豐富項(xiàng)目。
即使是使用S2SH開發(fā),也有很多種形式,比如按配置文件,就分為配置文件寫在.XML文件中的,或者是配置在Spring的bean文件中的,又或者是零配置的全注解形式。Spring還可以對(duì)Struts2和Hibernate進(jìn)行管理,完全不需要知道Struts2和Hibernate的實(shí)現(xiàn)代碼就可以編寫程序,實(shí)現(xiàn)簡(jiǎn)單,快捷的敏捷式開發(fā)。Spring還會(huì)自動(dòng)掃描被注解的類,然后創(chuàng)建在對(duì)象池中,在需要的時(shí)候取出使用,真正達(dá)到了即用即取的低耦合性。項(xiàng)目采用S2SH框架開發(fā),使用的注解形式取代配置文件。
4 爬蟲設(shè)計(jì)
手寫爬蟲和Heritrix的選擇。Heritrix是IA的開放源代碼,可擴(kuò)展的,基于整個(gè)Web的,歸檔網(wǎng)絡(luò)爬蟲工程。它是很好的爬蟲框架,有很好的可擴(kuò)展性。但其配置復(fù)雜,使用不是很方便,其機(jī)構(gòu)也極其復(fù)雜。所以這里新寫了一個(gè)爬蟲實(shí)現(xiàn),結(jié)合HtmlParser解析返回的頁(yè)面來(lái)實(shí)現(xiàn)功能。
爬蟲和多線程的實(shí)現(xiàn)(其中一個(gè)爬蟲為例):
通過(guò)Strust2標(biāo)簽獲得從index.action中傳來(lái)的vgProductSku對(duì)象,值以獲得每個(gè)結(jié)果集,將對(duì)象中的屬性顯示在相應(yīng)位置。頁(yè)面如圖3所示。
7 結(jié)束語(yǔ)
經(jīng)過(guò)三個(gè)月的時(shí)間完成了易購(gòu)導(dǎo)航網(wǎng)站的開發(fā),基本功能都已實(shí)現(xiàn)。爬蟲采用多線程技術(shù),6個(gè)爬蟲在網(wǎng)絡(luò)上不斷爬行,相不干擾,獲得了大量的電子商品信息??梢詫?duì)比商品信息,頁(yè)面美觀,操作簡(jiǎn)單,有很好的用戶體驗(yàn)??梢宰?cè)會(huì)員,登錄,并在網(wǎng)站上下單,或去第三方網(wǎng)站上查看更詳細(xì)的商品信息。網(wǎng)站致力于對(duì)商品的分析,給用戶更多的選擇空間和更好的選擇條件。
本系統(tǒng)采用面向?qū)ο蟮拈_發(fā)原理,方便以后擴(kuò)展新的功能。系統(tǒng)在開發(fā)過(guò)程中,無(wú)時(shí)無(wú)刻不考慮著爬蟲的性能優(yōu)化和用戶的體驗(yàn),將系統(tǒng)做的更好,讓功能更加完善。對(duì)于商品信息的對(duì)比,還可以進(jìn)一步設(shè)計(jì)抓取商品評(píng)論、游覽次數(shù)、購(gòu)買次數(shù)等信息,統(tǒng)一進(jìn)行數(shù)據(jù)處理,給用戶提供更完整,更好的選擇。網(wǎng)站還可以進(jìn)行更精確的商品分類和提供更準(zhǔn)確的搜索。
系統(tǒng)給用戶網(wǎng)上購(gòu)物帶來(lái)的是一個(gè)全新的體驗(yàn),給電子商務(wù)網(wǎng)站通過(guò)廣告和商品信息陳列帶來(lái)的是無(wú)限的流量收益。將來(lái)一定有更好的發(fā)展前景。
參考文獻(xiàn)(References):
[1] 王善發(fā),吳道榮.Java編程語(yǔ)言構(gòu)造方法研究[J].保山學(xué)院學(xué)
報(bào),2011.2:23-25
[2] 孫媛,陳麗梅.數(shù)據(jù)結(jié)構(gòu)在Java語(yǔ)言中的實(shí)現(xiàn)[J].電腦學(xué)習(xí),
2008.1:53-55
[3] 麻孜寧,伊浩,李祥.Java多線程并發(fā)系統(tǒng)中的安全性與公平
性[J].計(jì)算機(jī)技術(shù)與發(fā)展,2006.2:14-20
[4] 陳牧歌,王健.Ajax技術(shù)在Web開發(fā)中的應(yīng)用[J].電腦學(xué)習(xí),
2010.4:103-105
[5] 陸榮幸,郁洲,阮永良,王志強(qiáng).J2EE平臺(tái)上MVC設(shè)計(jì)模式的
研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2003.3:108-200
[6] 黃海,朱躍龍.J2EE設(shè)計(jì)模式與框架技術(shù)的應(yīng)用研究[J].計(jì)算
機(jī)與現(xiàn)代化,2006.5:15-19
[7] 劉星沙,羅昔軍.基于MVC模式的Struts和Spring整合框架的
研究與應(yīng)[J].湘潭大學(xué)自然科學(xué)學(xué)報(bào),2007.1:209-211
[8] 權(quán)寧一.基于JSP技術(shù)的企業(yè)電子商務(wù)系統(tǒng)[J].微處理機(jī),
2005.6:147-151
[9] 張承光.電子物流網(wǎng)絡(luò)的實(shí)現(xiàn)與構(gòu)想[J].互聯(lián)網(wǎng)周刊,
1999.24:364-365
[10] 孫釗.我國(guó)電子商務(wù)發(fā)展的現(xiàn)狀與對(duì)策[J].經(jīng)濟(jì)學(xué)情報(bào),
2000.4:67-69
[11] 諶燕,趙定遠(yuǎn).基于AJAX的異步Web開發(fā)模式[J].成都大
學(xué)學(xué)報(bào)(自然科學(xué)版),2007.4:244-246
[12] 雷麗秀.互聯(lián)網(wǎng)搜索引擎技術(shù)及展望[J].科技信息(學(xué)術(shù)研
究),2008.20:17-21
[13] 丁振國(guó),陳靜,李凡.基于JSP建立電子商務(wù)網(wǎng)站的核心技術(shù)[J].
計(jì)算機(jī)應(yīng)用研究,2002.7:159-161
[14] 郭曉艷,劉曉霞,朱潔娜.基于JSP的電子商務(wù)網(wǎng)站的構(gòu)建技
術(shù)[J].微機(jī)發(fā)展,2005.6:222-223