《基于網(wǎng)絡爬蟲的電商比價系統(tǒng)設計》8900字_第1頁
《基于網(wǎng)絡爬蟲的電商比價系統(tǒng)設計》8900字_第2頁
《基于網(wǎng)絡爬蟲的電商比價系統(tǒng)設計》8900字_第3頁
《基于網(wǎng)絡爬蟲的電商比價系統(tǒng)設計》8900字_第4頁
《基于網(wǎng)絡爬蟲的電商比價系統(tǒng)設計》8900字_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

基于網(wǎng)絡爬蟲的電商比價系統(tǒng)設計摘要近幾十年來,隨著科學技術(shù)的高速發(fā)展,使人類邁入了信息社會和互聯(lián)網(wǎng)經(jīng)濟的新時代,通過互聯(lián)網(wǎng)進行電子商務就是其中之一。自1998年以來,電子商務給當今社會帶來了重大的商業(yè)變革,特別是商品購買實踐的變革。隨著電商行業(yè)的發(fā)展,人們越來越多地使用購物網(wǎng)站,網(wǎng)絡購物逐漸變成了大多數(shù)人習以為常的一種生活行為。在大型電子商務網(wǎng)站上搜索和比較產(chǎn)品,對用戶來說是一個耗時和乏味的過程,他們經(jīng)常在大型電子商務網(wǎng)站之間切換,無法看到相同產(chǎn)品之間的比較信息??焖僬业阶詈玫漠a(chǎn)品,更有效地購物,是設計比價系統(tǒng)的實現(xiàn)目標。該系統(tǒng)的主要功能是收集電子商務網(wǎng)站的商品信息,并將商品價格進行比較,讓用戶明確商品目標。本系統(tǒng)的核心功能是從電商網(wǎng)站上采集商品的信息并在網(wǎng)站頁面上展示出來。能夠?qū)崿F(xiàn)商品的搜索,商品信息的呈現(xiàn),商品分類比價,網(wǎng)購者可以根據(jù)自己的需求進行篩選查看;網(wǎng)站系統(tǒng)可以在同樣的頁面上顯示不同網(wǎng)站商家的產(chǎn)品信息,得到相關(guān)產(chǎn)品的價格差異,并可以通過鏈接一鍵跳轉(zhuǎn)到其購買產(chǎn)品的商家頁面。本課題設計開發(fā)的比價系統(tǒng)整體為JavaWeb項目,大框架采用了SpringBoot,部分結(jié)合了Hibernate框架,數(shù)據(jù)庫表的設計使用了MySQL語言。關(guān)鍵詞:網(wǎng)絡爬蟲,電商比價系統(tǒng),IDEA,SpringBoot,MySQL數(shù)據(jù)庫目錄摘要 緒論課題研究背景隨著國內(nèi)電子商務和物流業(yè)的快速發(fā)展,網(wǎng)上購物形式大漲,效率也很高。人們越來越多地使用購物網(wǎng)站,“網(wǎng)購”已經(jīng)慢慢侵入到人們的生活當中,成為大多數(shù)人習以為常的一種生活行為。然而,電子商務仍然面臨一些問題。首先,網(wǎng)站上無數(shù)的類別和產(chǎn)品會使消費者難以選擇,需要花費大量的精力和時間進行比較和選擇。此外,有許多不同品牌的產(chǎn)品,但消費者的耐心和時間卻是有限的。電子商務比較系統(tǒng)的目標是使用戶能夠準確和容易地找到最合適的產(chǎn)品,提高查找效率和購物體驗。比價系統(tǒng)研究現(xiàn)狀國外研究現(xiàn)狀電商發(fā)展起步于海外,但隨著美國電商規(guī)模的迅速增長,美國海外市場對比價體系的研發(fā)已經(jīng)開始較早,而且也早已成熟的訓練了美國用戶的使用習慣,據(jù)研究表明,目前美國的網(wǎng)民中在電子商務平臺中有超過百分之六十八的人利用比價網(wǎng)站購買商品。比較成熟的比價網(wǎng)站列舉如下。ShopLocal是一家相當有影響力的電子商務比價門戶網(wǎng)站。ShopLocal主要收集各種電子商務平臺的商品信息,他們在給用戶提供商品比價服務的同時也會搜集用戶的意見反饋,對大量用戶評價不好的產(chǎn)品加以揭露。同時也可以給個人用戶提供更隱秘的價格資訊,包括正在清倉降價的店鋪,以及哪個店家的商品品質(zhì)最有保證等信息。該網(wǎng)站的特點就是能夠?qū)㈦娮由虅赵诰W(wǎng)絡平臺上的成本價格和用戶所在地的實體店鋪的產(chǎn)品價格相對比較。BizRate網(wǎng)站正式上線于一九九六年,主要為個人用戶提供商品比價服務,并以此為基石,慢慢發(fā)展為一家專注于商品的搜索引擎。用戶在該網(wǎng)頁通過搜索可以比較目標產(chǎn)品包含售價在內(nèi)的所有有關(guān)資訊,能夠給使用者的購買決策帶來大量的資訊支持。NexTag于一九九八年開始建立,同樣是日本國內(nèi)比較知名的比價購買平臺。這個頁面上不但能進行比較普通商品,比價業(yè)務同樣還包括了旅游服務,以及金融理財產(chǎn)品,金融理財產(chǎn)品,房地產(chǎn)等。國內(nèi)研究現(xiàn)狀限于中國國內(nèi)的網(wǎng)絡發(fā)展起步較晚,中國國內(nèi)的比價購物業(yè)務的發(fā)展速度也晚于一些發(fā)達國家。但由于國內(nèi)外網(wǎng)絡的高速發(fā)展,加上電商的強勢出現(xiàn),比價購物網(wǎng)絡也得到很大的提升,比價購物行業(yè)的發(fā)展趨勢越來越完善。其中一些成熟的比價網(wǎng)絡分為如下三種。一淘網(wǎng)是中國阿里巴巴公司旗下的銷售型導購網(wǎng)絡平臺,創(chuàng)建于二零一零年。一淘網(wǎng)立足于淘寶網(wǎng)、天貓、小飛豬以及阿里巴巴公司集團等豐厚的電子商務基礎。通過返利、紅包、優(yōu)惠券以及大量的宣傳利益點,給消費者帶來了高性價比的購買感受,是廣大個人用戶不容忽視的網(wǎng)絡購買利器。幫五購買作為華人國內(nèi)較大的自主購買搜索引擎門戶網(wǎng)絡平臺,利用了十多年的購買互聯(lián)網(wǎng)搜索引擎技術(shù)和多元化的垂直搜索引擎服務,幫使用者解答了“買哪里”和“去哪兒買”的實際提問,幫五購買下設有要買、淘特價、韓國館、幫五游、幫團購、幫五逛、幫社區(qū)、幫五淘等垂直購買互聯(lián)網(wǎng)搜索引擎頻道。比一比比價網(wǎng),比一比可以實現(xiàn)對全網(wǎng)所有產(chǎn)品資訊的檢索,為用戶帶來盡量完整的產(chǎn)品資訊,并且具有歷史產(chǎn)品價格檢索的能力。比一比比價網(wǎng)站的另一大特點,就是可以給用戶介紹關(guān)于淘寶店鋪虧本沖力的促銷內(nèi)容,并推出超低價的產(chǎn)品。本次畢業(yè)設計需完成一個電子商務比價平臺,項目研究的首要目標是需要獲得電商網(wǎng)站商品的數(shù)據(jù)源。而得到商品數(shù)據(jù)源有以下三種常用方法[1]。(1)線下數(shù)據(jù)收集。一家比價公司通常有一套收集產(chǎn)品數(shù)據(jù)的設備,然后分發(fā)給個人收集者,他們使用這些設備收集產(chǎn)品數(shù)據(jù)并最終發(fā)送。然后由審計師對收集的數(shù)據(jù)進行檢查,并對產(chǎn)品信息進行統(tǒng)計記錄。(2)合作發(fā)展電子商務。與主要的零售商和電子商務企業(yè)合作,并在數(shù)據(jù)方面進行合作收集。而要與這些電子商務巨頭合作,這需要一個龐大的用戶群提供樣本。(3)網(wǎng)絡爬蟲抓取數(shù)據(jù)[2]。利用網(wǎng)絡爬蟲技術(shù)采集各大電商網(wǎng)站平臺的需要的商品信息數(shù)據(jù)源。前兩個方法是比較準確的,但對于普通開發(fā)者很難實現(xiàn)。傳統(tǒng)價格比較系統(tǒng)的制造商不太可能使用前兩種數(shù)據(jù)采集方法。這就使使用第三個解決方法的優(yōu)勢變的明顯。第三個解決方案不需要大量的硬件資源,對應用程序的干擾較小,并且可以根據(jù)需要靈活地采集數(shù)據(jù)。因此,在本系統(tǒng)的設計中擬采用第三方案進行商品數(shù)據(jù)收集。網(wǎng)絡爬蟲研究現(xiàn)狀網(wǎng)絡爬蟲是一個遵循特定的規(guī)律,自主地訪問和收集網(wǎng)絡信息的程序,應用于互聯(lián)網(wǎng)搜索引擎。網(wǎng)絡爬蟲技術(shù)通過大量專家學者的鉆研和努力,已經(jīng)發(fā)展形成了一中較為完善的互聯(lián)網(wǎng)信息收集技術(shù),并作為現(xiàn)代搜索引擎的主要部分[3]。比一比比價網(wǎng)通過網(wǎng)絡爬蟲技術(shù)可以定時地對全網(wǎng)商品質(zhì)量提供搜索,并主動捕捉商品質(zhì)量相關(guān)信息,從而可以降低生產(chǎn)成本,在當前商品數(shù)量巨大的電商環(huán)境中為實現(xiàn)更全面的商品價值比較,提供了一個實現(xiàn)途徑。論文研究的內(nèi)容本課題設計開發(fā)的電商比價系統(tǒng),在IDEA軟件平臺上進行編碼,使用SpringBoot,Hibernate等框架,利用網(wǎng)絡爬蟲技術(shù)采集各大電子商務網(wǎng)站上的商品信息,解析后存儲于數(shù)據(jù)表中。本論文的研究目標如下:網(wǎng)站能夠從電商平臺獲取商品信息,包括商品的鏈接、價格、簡介等。網(wǎng)站實現(xiàn)商品分類比價展示,用戶可以根據(jù)自己的需求進行篩選查看。網(wǎng)站可以在相同頁面上展示各大電商網(wǎng)站的相關(guān)商品信息,用戶可以得到不同電商網(wǎng)站的相關(guān)商品價格差異,并且能夠令用戶點擊鏈接跳轉(zhuǎn)到相應網(wǎng)站上進行購買。網(wǎng)站功能完善、界面美觀,操作簡單,無明顯BUG。論文組織結(jié)構(gòu)本文章節(jié)安排如下:第一章緒論,重點介紹論文選題的背景意義,與選題有關(guān)的國內(nèi)學術(shù)狀況。第二章需求分析,主要分析系統(tǒng)的服務要求以及技術(shù)可行性。第三章總體設計,對整個比價系統(tǒng)進行功能分析,設計功能模塊。第四章詳細設計,對系統(tǒng)各功能模塊的重要部分進行了介紹。第五章系統(tǒng)測試,對系統(tǒng)的基本功能進行了基礎測試。第六章結(jié)論,對本次課題的設計開發(fā)和論文編寫進行了總結(jié)和展望。系統(tǒng)需求分析用戶需求分析該系統(tǒng)針對的是網(wǎng)上購物者,他們使用比價系統(tǒng)主要是為了簡化和方便選擇他們喜歡的產(chǎn)品,所以設計的網(wǎng)站頁面比較簡單,以便用戶能夠快速訪問到價格比較結(jié)果。系統(tǒng)搜索商品的時間應當控制在一定范圍,否則用戶會變得不耐煩并停止使用該系統(tǒng)。搜索要快速清晰,讓用戶能及時獲得所有的產(chǎn)品信息,可以按目標價格范圍過濾產(chǎn)品,點擊產(chǎn)品鏈接可以直接進入購物頁面,不用再次進行搜索跳轉(zhuǎn),方便快捷。圖2-1用戶需求流程圖技術(shù)可行性分析本課題編碼使用Java開發(fā)語言,網(wǎng)站采用B/S架構(gòu),在Wndows10平臺和JDK1.8環(huán)境下進行開發(fā),編譯采用Java語言。目前世界上使用范圍最為廣泛的開發(fā)語言是Java,因為它跨平臺的強大性,保證系統(tǒng)可在Linux,Unix和Windows等主流服務器平臺上部署運行。編碼工具使用了IDEA,數(shù)據(jù)庫系統(tǒng)采用了MySQL,應用服務器使用了Tomcat8.5,在數(shù)據(jù)量和并發(fā)量不大的情況下足以支撐整個網(wǎng)站。開發(fā)語言--JavaJava是Sun公司一九九五年推出的新一代計算機開發(fā)語言。Java程序設計語句是一個面向?qū)ο蟮某绦蛟O計語句,不但吸收了C++程序設計語句的所有優(yōu)勢外,還摒棄了在C++里所無法使用的多繼承、指針等定義,使得Java程序設計語句同時具備了功用巨大和簡潔易用二個特點[4]。Java語言成為靜態(tài)面向?qū)ο缶幊陶Z言的杰出代表,極好地體現(xiàn)了面向?qū)ο罄碚摚沟贸淌絾T以最優(yōu)秀的思想方法完成最繁雜的程序設計。開發(fā)環(huán)境--IDEAIDEA是JetBrains公司的產(chǎn)品,全稱為IntelliJIDEA,是Java語言的集成開發(fā)環(huán)境,IDEA在業(yè)界被公認為是最好的java開發(fā)工具之一,尤其在智能代碼助手、代碼自動提示、重構(gòu)、J2EE支持、Ant、JUnit、CVS整合、代碼審查、創(chuàng)新的GUI設計等方面的功能可以說是超常的。IntelliJIDEA主要用于支持Java、Scala、Groovy等語言的開發(fā)工具,同時具備支持目前主流的技術(shù)和框架,擅長于企業(yè)應用、移動應用和Web應用的開發(fā),同時強大的靜態(tài)代碼分析和人機工程學設計使開發(fā)不僅高效,而且令人愉快。數(shù)據(jù)庫--MySQLMySQL是一個關(guān)系式數(shù)據(jù)庫,把關(guān)聯(lián)信息庫的全部數(shù)據(jù)信息都存放于不同類型的表中,而并非把全部數(shù)據(jù)信息都置于某個大倉庫中,這就提高了反應速度并增強了靈活性[5]。MySQL中所采用的SQL語句,是用來存取數(shù)據(jù)庫系統(tǒng)的最普遍標準化方式。MySQL軟件實行了雙重認證方式,包括了社會版本和商業(yè)版,因其容量小、時間快、總體上具有價格便宜,因為開放式源碼環(huán)境這一特性,所以通常中小型網(wǎng)站的建設都選用了MySQL這個網(wǎng)絡數(shù)據(jù)庫系統(tǒng)。系統(tǒng)的設計框架本系統(tǒng)使用的是SpringBoot開發(fā)架構(gòu),即MVC開發(fā)方式。利用SpringBoot架構(gòu)可以更高效地簡化項目初始構(gòu)建和設計流程,而利用MVC模型則能夠把整個項目分成模型層、視圖層和控制層,提高了程序開發(fā)效率,降低了程序的耦合度[6]。圖2-2MVC體系結(jié)構(gòu)Hibernate框架Hibernate是一個面向用戶的開放源碼系統(tǒng)。它是一個表示物體和相對物體如何相互關(guān)聯(lián)的系統(tǒng)。Hibernate是一個非常輕量級的JDBC對象封裝器,在POJO和數(shù)據(jù)庫表之間建立映射關(guān)系,它是一個完全自動化的ORM系統(tǒng),Hibernate可以自動生成SQL語句,自動執(zhí)行它們,因此Java程序員可以利用面向?qū)ο缶幊痰乃枷腚S意操縱數(shù)據(jù)庫[8]。Lucene框架Lucene追溯本源其實是一個Jar包,是一種打開源代碼的全文搜索引擎工具包。但其并非一種完善的全文檢索引擎,而僅僅是一種全文檢索引擎的基本架構(gòu),提供了完備的搜索引擎功能與搜索引擎,以及部分文字解析引擎(英文與德文二種西方編程語言)。Elaticsearch搜索引擎Elasticsearch,是一種使用Lucene的搜索服務器。它展示了一種分布式多用戶服務能力的全文互聯(lián)網(wǎng)搜索引擎,并采用了RESTful的web界面。而Elasticsearch是用Java語言編寫的,并以在Apache許可證條件下的公開源碼設計,是一個全新的企業(yè)級互聯(lián)網(wǎng)搜索引擎。它的主要功能有:第一點,它是分布式、高擴展、高度即時的搜索和數(shù)據(jù)分析引擎。它可以非常便捷的使數(shù)據(jù)具備了查詢、分類和挖掘的工作能力。既利用了Elasticsearch的水平延伸性,也可以使大數(shù)據(jù)分析在現(xiàn)代生產(chǎn)工作環(huán)境中變得更有實用價值。其次,它允許數(shù)據(jù)分析、結(jié)構(gòu)化搜索和全文搜索。最后,它可以近實時處理大批量數(shù)據(jù)[10]。jsoup框架Jsoup是一種Java的HTML解釋器,能夠直觀剖析某些URL網(wǎng)址、HTML或文件的內(nèi)容。它也提出了一種非常省力的API,能夠使用DOM、CSS和相似于jQuery的方法來獲取和使用數(shù)據(jù)。它的使用方式與JavaScript以及jQuery都十分相似,而且也相當易于上手,所以本系統(tǒng)頁面分析采用的是jsoup框架。

系統(tǒng)總體設計系統(tǒng)功能分析本系統(tǒng)主要實現(xiàn)的功能有:(1)對使用者提交產(chǎn)品的搜索進行爬蟲;(2)把通過爬蟲所得到的產(chǎn)品信息內(nèi)容,以更友好的方式呈現(xiàn)給客戶;(3)實現(xiàn)商品分類比價展示,使用者能夠根據(jù)自己的需求進行篩選查看;(4)用戶能夠在同張網(wǎng)頁上得到各大電商網(wǎng)站的相關(guān)商品信息;(5)使用者能夠在網(wǎng)頁上發(fā)現(xiàn)各個電子商務站點的產(chǎn)品價格差距;(6)點擊商品可以查看商品詳細信息,并支持用戶跳轉(zhuǎn)到相應網(wǎng)站進行購買。圖3-1系統(tǒng)主要功能圖系統(tǒng)總體功能模塊用戶訪問該系統(tǒng)的網(wǎng)站并注冊登錄。當用戶使用關(guān)鍵詞輸入產(chǎn)品搜索時,系統(tǒng)會根據(jù)要分析的產(chǎn)品標識符在Elasticsearch引擎中搜索數(shù)據(jù),如果找到了這樣的數(shù)據(jù),將會把商品詳細信息展現(xiàn)給用戶。對于在Elasticsearch引擎中沒有找到的產(chǎn)品,系統(tǒng)會根據(jù)關(guān)鍵詞指定的URL從電子商務網(wǎng)站中搜索產(chǎn)品信息并存儲在Elasticsearch引擎中,然后再將其轉(zhuǎn)存于數(shù)據(jù)庫中,最后利用AJAX頁面技術(shù)將產(chǎn)品信息展示給用戶。圖3-2功能模塊流程圖系統(tǒng)總體框架本系統(tǒng)主要采用JAVAEE技術(shù)進行開發(fā),系統(tǒng)的三個主要層次是:業(yè)務邏輯層、數(shù)據(jù)采集層和視圖層,也被稱為MVC編程模型。業(yè)務邏輯層:業(yè)務邏輯層主要管理從網(wǎng)站發(fā)送的參數(shù),然后在管理相關(guān)的業(yè)務邏輯后,接收相應的URL并將其作為參數(shù)呈現(xiàn)給數(shù)據(jù)搜索層。數(shù)據(jù)搜索層:數(shù)據(jù)搜索層接收在服務邏輯層獲得的URL作為參數(shù),然后處理URL對應的業(yè)務頁面,獲得業(yè)務頁面中產(chǎn)品的具體信息,并再次處理產(chǎn)品,獲得其具體信息,最后將搜索到的信息封裝在一個對象表中,再返回到業(yè)務邏輯層。視圖層:視圖層是直接在面向用戶,允許用戶進行操作。它是用JavaScript和HTML5創(chuàng)建的,由一個靜態(tài)的HEML層和一個動態(tài)的JSP層組成。在輸入關(guān)鍵詞后,用戶可以輸入一個可點擊的搜索,將關(guān)鍵詞直接傳遞給服務邏輯層。一旦訪問完成,業(yè)務邏輯層將數(shù)據(jù)返回給視圖層,而視圖層則向用戶展示產(chǎn)品信息。系統(tǒng)總體框架圖如圖3-3。圖3-3系統(tǒng)總體框架圖系統(tǒng)詳細設計前端頁面設計前臺用Web方式作為交互界面,用戶輸入目標商品的名稱是,系統(tǒng)從后臺的本地數(shù)據(jù)庫中查詢符合要求的商品記錄,并展示商品的詳細信息的查詢頁面,用戶可以通過點擊產(chǎn)品名稱查看詳細描述,點擊“購買”則跳轉(zhuǎn)到對應網(wǎng)站進行購買。如圖4-1。而系統(tǒng)的主要數(shù)據(jù)來源主要來自網(wǎng)絡爬蟲對各電商平臺網(wǎng)站的抓取[16]。圖4-1用戶平臺交互序列圖搜索界面設計圖4-2搜索頁面設計如圖4-2顯示了系統(tǒng)搜索的用戶界面。用戶界面的外觀主要是借鑒了京東網(wǎng)頁模板進行設計,整體風格較為類似。用戶在搜索框中輸入關(guān)鍵詞進行搜索,得到商品信息。用戶登錄頁面設計圖4-3是用戶登陸頁面設計,整體設計使用了HTML5設計模板,比較簡潔大方。圖4-3登陸頁面設計數(shù)據(jù)庫設計本系統(tǒng)是在MySQL環(huán)境中采用數(shù)據(jù)庫可視化軟件NavicatforMySQL。本系統(tǒng)主要是利用網(wǎng)絡爬蟲技術(shù)來完成商品數(shù)據(jù)收集,在進行分析后把標準化后的商品數(shù)據(jù)儲存在其相應的數(shù)據(jù)庫中。商品信息表。主要存儲商品的名稱、來源平臺、店鋪名稱、價格、鏈接、創(chuàng)建時間。表4-1goods商品信息表字段名稱字段類型允許空說明productidint否商品編號select_nmvarchar是搜索名稱raw_titlevarchar否商品名稱platformvarchar是商品平臺shopvarchar是店鋪名稱view_pricevarchar是商品價格detail_urlvarchar是商品鏈接create_timvarchar是創(chuàng)建時間管理員用戶表。主要存儲用戶注冊的個人信息,其中包括管理員信息,用戶與管理員之間的權(quán)限不同。表4-2users管理員用戶表字段名稱字段類型允許空說明useridint否用戶編號usernamevarchar否用戶名real_namevarchar是真實姓名emailvarchar否郵箱地址passwordvarchar否登錄密碼permissionInt否0(禁止登陸),1(正常普通用戶)create_timedatatime否注冊時間last_login_timedatatime否創(chuàng)建時間用戶留言表。主要用于存儲用戶對于某些商品的評價。表4-3mark用戶留言表字段名稱字段類型允許空說明markidint否評價編號useridint否用戶編號productidint否商品編號markscoreint是評價分數(shù)markcontentvarchar是評價內(nèi)容marktimedatatime是評級時間用戶搜索信息表。用于存儲用戶進行搜索時所搜索的關(guān)鍵詞和搜索時間。表4-4search用戶搜索信息表字段名稱字段類型允許空說明searcheidint否搜索編號useridint否用戶編號searchcontentvarchar是搜索詞searchtimedatatime是搜索時間商品分類表。用于保存商品種類。表4-5category商品分類表字段名稱字段類型允許空說明idint否自增編號category_idInt否商品類別編號category_namevarchar是商品類別名稱category_descvarchar是商品類別描述網(wǎng)絡爬蟲模塊設計本模塊采用HttpClient抓取數(shù)據(jù)。這里以爬取京東商城商品信息為例。新建一個爬蟲項目,首先要配置好依賴。由于經(jīng)常使用HTTPClient,所以需要進行封裝,方便使用。部分代碼如下。publicstaticStringhttpGet(Stringurl){

CloseableHttpClienthttpClient=HttpClients.createDefault();//獲取HttpClient對象

HttpGetget=newHttpGet(url);//創(chuàng)建對象,設置url地址

get.addHeader("Accept-Language","zh-Hans-CN,zh-Hans;q=0.5");

Stringresult="";

CloseableHttpResponseresponse=null;//獲得響應

try{

response=httpClient.execute(get);//解析響應

HttpEntityresponseEntity=response.getEntity();

result=EntityUtils.toString(responseEntity,"UTF-8");

}catch(IOExceptionvar6){

var6.printStackTrace();

}

returnresult;

}

}網(wǎng)頁解析模塊設計爬取數(shù)據(jù)完成,利用Jsoup進行網(wǎng)頁數(shù)據(jù)解析。Jsoup可在一個url,文件或數(shù)字串中分析出html;通過DOM或CSS選擇器來查看、獲取數(shù)據(jù)信息。所以最后可以將爬取的數(shù)據(jù)剔除無效數(shù)據(jù)后,可以按要求將標準化后的數(shù)據(jù)存入對應系統(tǒng)數(shù)據(jù)庫表中。StringjdResult=((HttpResponse)cn.hutool.http.HttpUtil.createGet("/Search?keyword="+productNm+"&enc=utf-8&pvid=4fb2a4ea7ae244f8b819d4399017b11a").execute().charset("UTF-8")).body();Documentdoc=Jsoup.parse(jdResult);ElementgoodsList=doc.getElementById("J_goodsList");Elementsli=goodsList.getElementsByTag("li");for(inti=0;i<li.size();++i){Elementelement1=(Element)li.get(i);Stringval=element1.attributes().get("data-sku");if(!StringUtil.isBlank(val)){Elementselements=element1.getElementsByTag("i");StringrawTitle="";Elementsem=element1.getElementsByTag("em");for(intj=0;j<em.size();++j){Elementsfont=((Element)em.get(j)).getElementsByTag("font");if(null!=font&&font.size()>0){rawTitle=((Element)em.get(j)).text();}}業(yè)務邏輯層設計業(yè)務邏輯層主要負責將向瀏覽器所上傳的參數(shù)加以管理,而經(jīng)過對相應的業(yè)務邏輯的管理可以得到對應的URL,并將URL作為參數(shù)提交到數(shù)據(jù)爬取層。當接收到視圖層傳來的關(guān)鍵詞,然后加以解析后,判斷是否要進行爬取商品信息。publicclassInitController privatestaticLoggerlog=LoggerFactory.getLogger(InitController.class)privateGoodsSearchServicegoodsSearchService;publicResponseEntityrun(HttpServletRequestrequest,Stringkeyword){ ResponseEntityresponseEntity=newResponseEntity(); List<Map<String,Object>>list=goodsSearchService.queryHit(keyword,"pa","title"); if(list!=null&&list.size()>0){ responseEntity.success(list,"搜索成功"); }else{ ThreadPool.getInstance().addTask(newInitSyncTask(keyword,goodsSearchService)); responseEntity.failure("404","暫無更新商品,現(xiàn)在已啟動數(shù)據(jù)采集功能,請5秒后再試..."); }returnresponseEntity;}搜索模塊的設計本系統(tǒng)搜索模塊使用的是以Lucene框架為基礎中的ElasticSearch搜索引擎。主要分為引擎文檔定義層和引擎服務層,并實現(xiàn)用戶比價功能。用戶可在查詢界面的搜索框內(nèi)輸入商品關(guān)鍵詞,或單擊旁邊的查詢按鈕完成商品查詢。系統(tǒng)在數(shù)據(jù)庫中查詢相關(guān)商品并進行頁面展示,主要包括商品詳情、商品鏈接、當前價格等。關(guān)鍵價格排序部分代碼如下。privatestaticvoidsearchOrdered(Clientclient){SearchResponseresponse=client.prepareSearch(index).setQuery(QueryBuilders.matchAllQuery())//根據(jù)價格降序排序.addSort(SortBuilders.fieldSort("view_price").order(SortOrder.DESC)).execute().actionGet();System.out.println("searchOrdered:");System.out.println(response);}

系統(tǒng)的調(diào)試與測試軟件測試目的軟件測試是使用人工或自動的手段來運行或測定某個軟件系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或弄清預期結(jié)果與實際結(jié)果之間的差別。本系統(tǒng)測試目標有如下三條。(1)測試電商比價系統(tǒng)運行過程中是否出現(xiàn)bug,保障系統(tǒng)能夠?qū)崿F(xiàn)其基本功能。(2)將測試過程獲取到的實驗數(shù)據(jù)記錄分析,以便用于后期軟件的風險評估。(3)在系統(tǒng)無明顯bug的基礎上,要保證整個軟件開發(fā)流程的合理性、完備性、高質(zhì)量性。所以軟件測試不僅是驗證軟件質(zhì)量,也是保障軟件開發(fā)人員對于開發(fā)流程的重視,為后期維護軟件帶來便利。軟件測試內(nèi)容系統(tǒng)功能測試此次測試時按照編寫的測試用例依次對系統(tǒng)所要實現(xiàn)的功能進行測試,檢測各功能是否能夠正常實現(xiàn)并滿足用戶需求?;貧w測試此次測試這個模塊將在整個系統(tǒng)開發(fā)期進行測試。對部分代碼進行修改后,可會引進的新的bug。因此,需要進行持續(xù)的回歸測試,以檢查代碼更新在運行期間不會引入新的錯誤。軟件測試環(huán)境本系統(tǒng)通過IDEA上運行,使用Apache公司推出的Tomcat8.5Web應用服務器與jdk1.8,數(shù)據(jù)庫使用的NavicatforMySQL與VertrigoServ。而電商比價系統(tǒng)在本地URL為:http://localhost:8088。測試用例與測試結(jié)果根據(jù)電商比價系統(tǒng)的功能設計,對各功能編寫測試用例并進行測試。測試用例與測試結(jié)果如下表。測試系統(tǒng)的網(wǎng)絡爬蟲功能,如下表5-1。表5-1網(wǎng)絡爬蟲功能的測試表測試ID1測試項目網(wǎng)絡爬蟲功能測試目的檢驗系統(tǒng)的爬蟲功能是否能夠爬取商品信息,解析相關(guān)字段后再將其放入到數(shù)據(jù)庫中測試步驟運行相關(guān)爬蟲代碼檢查數(shù)據(jù)庫中的商品信息表預期結(jié)果數(shù)據(jù)解析成功并放到相關(guān)表中測試結(jié)果與預期結(jié)果相符,商品信息爬取成功并放入了商品信息表中測試系統(tǒng)的注冊登錄功能,如下表5-2。表5-2注冊登錄功能的測試表測試ID2測試項目登錄注冊功能測試目的檢驗系統(tǒng)的注冊登錄功能測試步驟輸入網(wǎng)址,進入比價系統(tǒng)的登錄注冊頁面模擬新用戶輸入賬號密碼進行注冊模擬老用戶輸入賬號密碼進行登錄預期結(jié)果新用戶注冊登錄成功老用戶登錄成功測試結(jié)果與預期結(jié)果相符,新老用戶的注冊登錄功能實現(xiàn)測試系統(tǒng)的搜索比價功能,如下表5-3。表5-3搜索比價功能的測試表測試ID3測試項目搜索比價功能測試目的檢驗系統(tǒng)的搜索比價功能測試步驟用戶在搜索框內(nèi)輸入商品關(guān)鍵字,點擊搜索查看商品信息及價格差異跳轉(zhuǎn)鏈接購買預期結(jié)果搜索功能正常運行通過關(guān)鍵字搜索出相關(guān)商品并顯示在頁面上測試結(jié)果與預期結(jié)果相符,搜索比價功能正常運行測試結(jié)論經(jīng)過一系列的黑盒測試,本系統(tǒng)的網(wǎng)絡爬蟲功能、注冊登錄功能、搜索比價功能基本能夠正常實現(xiàn)。結(jié)論與展望結(jié)論電商比價系統(tǒng)的設計與開發(fā)的功能已基本達到預期設計目標,但因為自身能力的尚有不足,系統(tǒng)只實現(xiàn)了對于京東、淘寶網(wǎng)站商品的信息爬取,其他很多當下主流的購物網(wǎng)站的商品數(shù)據(jù)沒有進行抓取。數(shù)據(jù)庫設計上的還有不足之處,例如:每次搜索都有數(shù)量龐大的商品信息存進數(shù)據(jù)庫中,系統(tǒng)偶有延遲。此外,前臺引用HTML5模板,因掌握的還不熟悉,頁面設計還不夠簡潔美

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論