朱向彩,萬齊飛
(泰山學(xué)院 信息科學(xué)技術(shù)學(xué)院,山東 泰安 271021)
B2C及C2C模式的各類購物網(wǎng)站的出現(xiàn)和發(fā)展為消費者提供了廣闊的購物空間,網(wǎng)絡(luò)購物成交額逐漸增高.隨著網(wǎng)購的不斷發(fā)展,商品的品類和數(shù)量也在不斷增多,大量的商品信息使得消費者常常無法獲得合適價格的商品.本文主要研究如何解決此類問題,并為用戶提供及時有效的商品信息,為消費者提供購物參考.地方網(wǎng)絡(luò)技術(shù)發(fā)展在這方面的技術(shù)應(yīng)用欠缺,從實際角度看,本文所研究的平臺在某種程度上滿足了用戶需求,有很好的應(yīng)用前景[1,2].
網(wǎng)絡(luò)爬蟲依次檢索電子商務(wù)平臺中的商品內(nèi)容記錄,如名稱、單價、標(biāo)志圖片等.在網(wǎng)絡(luò)技術(shù)中,網(wǎng)絡(luò)爬蟲的重要作用是從最初的幾個網(wǎng)頁開始爬行,直到爬行隊列變空或滿足結(jié)束條件的時候來結(jié)束爬行.網(wǎng)絡(luò)爬蟲也可作為網(wǎng)站鏈接檢查的工具,本文所研究的爬蟲技術(shù)是為優(yōu)惠商品搜索平臺提供信息資源而設(shè)計的,所研發(fā)的平臺是一個為用戶網(wǎng)絡(luò)購物提供方便的信息系統(tǒng),用戶可通過平臺搜索到優(yōu)惠商品信息并能夠利用這些信息,節(jié)約商品搜索時間,同時平臺還可以為購物網(wǎng)站增加銷售量,提升銷售業(yè)績.
從1990年之后,就有人進(jìn)行網(wǎng)絡(luò)爬蟲技術(shù)的研究,當(dāng)前為止,此項技術(shù)已逐步成熟,它是搜索引擎的核心技術(shù).常用的爬蟲有 Heritrix、Nutch、Larbin等.網(wǎng)頁分析和網(wǎng)頁搜索是爬蟲技術(shù)的最重要部分.爬蟲技術(shù)搜索引擎比傳統(tǒng)搜索引擎更具有針對性,搜索結(jié)果會更讓用戶滿意.按結(jié)構(gòu)及技術(shù),網(wǎng)絡(luò)爬蟲一般可分為通用爬蟲、增量爬蟲、聚焦爬蟲、Deep Web爬蟲等.目前已有一些應(yīng)用基于Heritrix進(jìn)行研發(fā)及功能擴(kuò)展等.
本文用到的C++技術(shù),是由AT &T Bell實驗室的Bjarne Stroustrup博士等人在20世紀(jì)80年代在C語言的基礎(chǔ)上研發(fā)出來的技術(shù).C++增加了面向?qū)ο蟮南嚓P(guān)技術(shù).C++可面向過程和面向?qū)ο?,功能強?C++技術(shù)與C技術(shù)相比較,在以下方面增強了:數(shù)據(jù)類型的檢查更加嚴(yán)格;增加了面向?qū)ο蠹夹g(shù)及泛型編程技術(shù);新增異常處理技術(shù);新增運算符重載技術(shù);新增標(biāo)準(zhǔn)模板庫.面向?qū)ο蠹夹g(shù)是針對研究規(guī)模較大的程序提出的,可以提高開發(fā)效率.面向?qū)ο蠛瓦^程并不對立,它們各有作用互為補充[3,4].
本文用到的Xapian技術(shù),是基于C++的跨平臺全文檢索技術(shù),作用同Java的lucene技術(shù).lucene是基于Java的全文檢索技術(shù),之前C++沒有相應(yīng)工具,Xapian填補了此項空白.Xapian技術(shù)的api檢索原理和lucene技術(shù)在很多方面相似,但也有不同,Xapian除了提供C++編程接口外,還提供了PHP,Python,Perl,Ruby等編程接口及類庫,可從腳本編程語言中使用Xapian技術(shù)進(jìn)行全文檢索[5,6].
本文用到的SALSA算法,它的提出是希望能夠結(jié)合PageRank及HITS的算法特點,采納PageRank的“隨機(jī)游走模型”.SALSA融合了PageR-ank及HITS的思想,按實際效果,大量的實驗數(shù)據(jù)表明,SALSA的搜索效果優(yōu)于PageRank及HITS,是目前效果最好的鏈接分析算法之一.從整體計算流程來說,可將SALSA分為兩個階段:第一階段,是確定計算對象集合的階段,與HITS基本相同;第二個階段,是鏈接關(guān)系傳播,采納了“隨機(jī)游走模型”.判權(quán)算法是很好的網(wǎng)絡(luò)路徑方法,它用Bellman-Ford或SPFA算法求負(fù)權(quán)環(huán);如果有負(fù)權(quán)環(huán)的話,John可無限次利用此環(huán),得到負(fù)值;如果存在負(fù)環(huán)輸出YES,否則輸出NO;M條路為雙向正權(quán)邊,W個蟲洞為單向負(fù)權(quán)邊[7,8].
經(jīng)過綜合探索,本文將Xapian技術(shù)、SALSA算法、網(wǎng)絡(luò)爬蟲技術(shù)等結(jié)合起來以實現(xiàn)優(yōu)惠商品的搜索應(yīng)用,這方面的技術(shù)和應(yīng)用研究未見報道.
網(wǎng)絡(luò)爬蟲技術(shù)是根據(jù)一定的網(wǎng)頁分析算法來過濾與網(wǎng)頁主題無關(guān)的信息鏈接,保留相關(guān)鏈接并將其放入待抓取的隊列;根據(jù)搜索策略從隊列中選擇下一步要抓取的網(wǎng)頁URL,并重復(fù)上述過程,直至達(dá)到某條件時停止.
被網(wǎng)絡(luò)爬蟲抓取的全部網(wǎng)頁都將被系統(tǒng)存儲起來,進(jìn)行分析和過濾,并建立索引,對于主題網(wǎng)絡(luò)爬蟲來講,本過程得到的分析結(jié)果還可能對后續(xù)的抓取過程進(jìn)行反饋.根據(jù)不同需求,達(dá)到如下目標(biāo):
(1)設(shè)計多線程網(wǎng)絡(luò)爬蟲,客戶端向服務(wù)器發(fā)送設(shè)定好的請求,如圖1所示.
圖1 網(wǎng)絡(luò)爬蟲實現(xiàn)示意圖
(2)通過http將web服務(wù)器上的協(xié)議站點相關(guān)網(wǎng)頁源碼讀取出來.
(3)根據(jù)特定的正則表達(dá)式提取客戶端的需求信息.
(4)通過搜索策略,從某網(wǎng)頁鏈接開始,訪問該鏈接頁面上的全部鏈接,完成后,再用遞歸算法實現(xiàn)下一層訪問.
最佳優(yōu)先搜索策略按一定的網(wǎng)頁分析法,預(yù)測候選URL與目標(biāo)網(wǎng)頁的相似性,或與主題的相關(guān)性,抓取評價最好的URL,訪問分析算法預(yù)測“有用”的頁面.問題是,在爬蟲抓取路徑上的很多相關(guān)網(wǎng)頁可能被忽略,因為最佳優(yōu)先策略屬于局部最優(yōu)搜索算法.由此,要將最佳算法優(yōu)先和具體應(yīng)用結(jié)合起來并進(jìn)行改進(jìn),使其跳出局部最優(yōu)點.閉環(huán)調(diào)整可將無關(guān)網(wǎng)頁數(shù)量降低30%~90%.網(wǎng)絡(luò)爬蟲的結(jié)構(gòu)模型如圖2所示.
網(wǎng)頁數(shù)據(jù)庫是用來存儲爬蟲下載下來的網(wǎng)頁數(shù)據(jù)的,其存儲設(shè)計主要針對原始頁面信息和已處理的網(wǎng)頁數(shù)據(jù).考慮到爬蟲網(wǎng)頁站重復(fù)訪問的具體情況,每次進(jìn)行重訪時,需要到網(wǎng)頁庫中查看網(wǎng)頁的變化情況.如果在一段時間內(nèi)網(wǎng)頁信息并沒有發(fā)生改變(可通過etag,LastModified等技術(shù)進(jìn)行檢測),就不再繼續(xù)進(jìn)行下載;否則,發(fā)現(xiàn)網(wǎng)頁信息發(fā)生過改變,需要重新下載,并進(jìn)行網(wǎng)頁庫更新.由此,對網(wǎng)頁庫數(shù)據(jù)的訪問,應(yīng)該支持順序訪問及隨機(jī)訪問方式.網(wǎng)頁庫很大,隨機(jī)訪問,就是在獲取到某下載任務(wù)后,通過該URL進(jìn)行Hash映射,并迅速得到對應(yīng)的網(wǎng)頁數(shù)據(jù)狀態(tài),判定是否需重新下載.順序訪問查找時,在進(jìn)行網(wǎng)頁數(shù)據(jù)處理時,需要進(jìn)行信息抽取,并建立索引庫[9].
隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展及網(wǎng)絡(luò)環(huán)境的逐漸成熟,網(wǎng)購已逐步普及.而在網(wǎng)購中由于商品數(shù)量和類型日益增多,海量的商品信息增加了用戶選購合適商品的困難,而本文所研發(fā)的應(yīng)用平臺就是在這樣的背景和環(huán)境下提出的,目的在于為用戶提供準(zhǔn)確、有效、實時的商品信息,方便網(wǎng)購.和其他電商系統(tǒng)相對比可知,本應(yīng)用平臺的實現(xiàn)有較明顯的針對性,其主要特性也能夠滿足用戶和賣家的實際需求.
(1)功能的實用性:本平臺可以為用戶搜索到合適的優(yōu)惠商品,并分類比較,提供符合用戶選擇習(xí)慣的排序推薦信息.
(2)網(wǎng)購的安全性:本平臺不提供用戶和商家的直接商品交易,只提供優(yōu)惠商品的信息推薦.商品交易是通過本平臺中提供的鏈接返回到相應(yīng)的購物網(wǎng)站進(jìn)行,保證了購物安全.
本文所研究的內(nèi)容主要體現(xiàn)在如下幾個方面:將網(wǎng)絡(luò)爬蟲技術(shù)應(yīng)用于篩選用戶所需的商品信息中;搜索效率高,基于C++的Xapian技術(shù)在運行速率上有著很大的優(yōu)勢;信息真實率高,運用改進(jìn)的DNS CacheSLASA技術(shù)抓取主流電商網(wǎng)頁中的商品數(shù)據(jù),對google和baidu等搜索引擎及pageRank算法進(jìn)行二次過濾,增強了信息的可靠性;數(shù)據(jù)信息查詢采用了自主設(shè)計的key-value型數(shù)據(jù)結(jié)構(gòu)(與簡化版的NoSQL相似),且支持跨平臺;通過判權(quán)算法篩選數(shù)據(jù),將選出的商品信息回饋給用戶,使用戶達(dá)到選取優(yōu)惠商品的目標(biāo).
圖2 網(wǎng)絡(luò)爬蟲結(jié)構(gòu)模型示意圖
[1]陳實.面向web視頻的網(wǎng)絡(luò)爬蟲的研究與實現(xiàn)[D].四川:電子科技大學(xué),2012.
[2]趙艷.基于網(wǎng)絡(luò)爬蟲的跨站腳本漏洞動態(tài)檢測技術(shù)研究[D].陜西:西安交通大學(xué),2011.
[3]林曉春,王艷.一種基于圖像融合的紅外圖像增強新方法[J].紅外技術(shù),2004,26(2):48-50.
[4]何斌,馬天予.Visual C++數(shù)字圖像處理[M].2版.北京:人民郵電出版社,2002:199-200.
[5]孟時,王彥.Larbin網(wǎng)絡(luò)爬蟲的體系結(jié)構(gòu)[J].電腦學(xué)習(xí),2010(4):80-81.
[6]王鋒,王偉,張璟.基于Linux的網(wǎng)絡(luò)爬蟲系統(tǒng)[J].計算機(jī)工程,2010,36(1):280-282.
[7]王芳,陳海建.深入解析 Web主題爬蟲的關(guān)鍵性原理[J].微型電腦應(yīng)用,2011,27(7):32-34.
[8]王凡毓.網(wǎng)絡(luò)蜘蛛Larbin的設(shè)計和優(yōu)化[J].科技創(chuàng)業(yè)月刊,2008,21(2):145-147.
[9]張帆,李琳娜.基于Web的智能信息采集及處理系統(tǒng)設(shè)計與實現(xiàn)[J].計算機(jī)工程,2007,33(18):265-267.