陳陽(yáng)
摘要:本系統(tǒng)對(duì)網(wǎng)絡(luò)爬蟲(chóng)獲得的數(shù)據(jù)進(jìn)行分析,實(shí)現(xiàn)對(duì)淘寶某商品銷(xiāo)量的監(jiān)控功能,從而達(dá)到更深入的了解消費(fèi)者對(duì)于某種商品的喜好程度,以此來(lái)判斷和決定以后的商品的銷(xiāo)售。了解淘寶網(wǎng)的網(wǎng)頁(yè)架構(gòu)和一些特定的規(guī)則,并依據(jù)此來(lái)編寫(xiě)相關(guān)的代碼和特定的規(guī)則,編寫(xiě)JAVA代碼并使用了網(wǎng)頁(yè)渲染工具以及瀏覽器工具。利用編寫(xiě)好的程序下載我們所需要的特定的網(wǎng)頁(yè)數(shù)據(jù),通過(guò)DOM解析分析并提取我們所需要的信息,將獲取到的信息存入數(shù)據(jù)庫(kù)中,最終通過(guò)Web展示在網(wǎng)頁(yè)上。
關(guān)鍵詞:網(wǎng)絡(luò)爬蟲(chóng);淘寶;銷(xiāo)售量
0.引言
伴隨著電子商務(wù)的迅猛發(fā)展,越來(lái)越多的人喜歡和趨向于網(wǎng)絡(luò)購(gòu)物?;诰W(wǎng)絡(luò)購(gòu)物成功的典型案例淘寶網(wǎng)來(lái)說(shuō),在淘寶網(wǎng)進(jìn)行銷(xiāo)售的總經(jīng)銷(xiāo)商來(lái)說(shuō),能及時(shí)的掌握分銷(xiāo)商的銷(xiāo)售量信息,這樣不僅可以幫助他們更好的生產(chǎn)和合理的分配自己的產(chǎn)品分配,還有助于提高企業(yè)的效率和利潤(rùn)。目前經(jīng)銷(xiāo)商對(duì)于分銷(xiāo)商的淘寶商戶的數(shù)據(jù)監(jiān)控是有需求的,但淘寶卻只提供淘寶客戶對(duì)自己的數(shù)據(jù)管理和查看,并不允許他人獲得這些商業(yè)信息。傳統(tǒng)的方式是利用人來(lái)手動(dòng)輸入網(wǎng)址和查看各個(gè)淘寶商戶的數(shù)據(jù)并記錄。這就需要大量的人力和時(shí)間,還存在效率低出錯(cuò)率高得缺點(diǎn)。基于淘寶商品的監(jiān)控系統(tǒng)能夠幫助經(jīng)銷(xiāo)商系統(tǒng)的、全面的、更加直接的監(jiān)控分銷(xiāo)商的銷(xiāo)售信息。系統(tǒng)可以幫助任何一個(gè)經(jīng)銷(xiāo)商對(duì)自己在淘寶網(wǎng)的各個(gè)分銷(xiāo)商的銷(xiāo)售量進(jìn)行監(jiān)控,在功能方面主要可以獲取某個(gè)商品在淘寶網(wǎng)所有商家的網(wǎng)絡(luò)地址和每個(gè)商家的每月的銷(xiāo)售量的展示和查詢。
1.需求分析
對(duì)于淘寶網(wǎng)的總經(jīng)銷(xiāo)商來(lái)說(shuō),如何生產(chǎn)和分配自己的產(chǎn)品無(wú)疑是重中之重。某知名商品的總經(jīng)銷(xiāo)商為了監(jiān)控自己淘寶網(wǎng)下的各個(gè)分銷(xiāo)商的銷(xiāo)售量情況,利用人工的手段實(shí)時(shí)的蹲守在電腦旁查看和記錄每個(gè)分銷(xiāo)商的銷(xiāo)售情況,這樣的手段太消耗人力和時(shí)間,而且沒(méi)有效率。如果可以利用程序自動(dòng)的去獲得沒(méi)一家分銷(xiāo)商的商家地址,已經(jīng)他們每個(gè)月的銷(xiāo)售記錄,并對(duì)商品的銷(xiāo)售量進(jìn)行實(shí)時(shí)監(jiān)控。這樣不僅可以幫助他們更好的生產(chǎn)和合理的分配自己的產(chǎn)品分配,還有助于提高經(jīng)銷(xiāo)商的效率和利潤(rùn)。
2.系統(tǒng)設(shè)計(jì)
(1)功能設(shè)計(jì)
系統(tǒng)包含的功能有兩部分,商家地址的獲取功能和網(wǎng)頁(yè)內(nèi)容的獲取功能。商家地址的獲取功能主要是實(shí)現(xiàn)商家網(wǎng)址獲取的功能。首先由用戶鍵入要監(jiān)控的產(chǎn)品的名字即關(guān)鍵字。然后由應(yīng)用端程序獲取關(guān)鍵字并在淘寶中搜索關(guān)鍵字,將得到的結(jié)果頁(yè)面進(jìn)行分析,并按照特定的規(guī)則去篩選,符合條件的網(wǎng)址即為商家店鋪網(wǎng)址,不符合的則舍棄。網(wǎng)頁(yè)內(nèi)容的獲取功能主要是首先將保存網(wǎng)頁(yè)地址的文件讀入,將得到的網(wǎng)頁(yè)地址進(jìn)行解析,并獲取網(wǎng)頁(yè)內(nèi)容,利用網(wǎng)頁(yè)內(nèi)容生成DOM樹(shù)。按照之前找好的網(wǎng)頁(yè)規(guī)則,輸入要查找的內(nèi)容所在的節(jié)點(diǎn)即唯一的ID。通過(guò)ID查找DOM樹(shù)種是否含有此ID,如果有則提取ID內(nèi)容并存入數(shù)據(jù)庫(kù)中,如果沒(méi)有則返回null并退出程序。
(2)數(shù)據(jù)的抓取和存儲(chǔ)
系統(tǒng)對(duì)數(shù)據(jù)的抓取和存儲(chǔ)使用了兩種方式,分別是商家地址的抓取和存儲(chǔ)和商家銷(xiāo)售量信息的獲取和存儲(chǔ)。對(duì)于商家地址的抓取和存儲(chǔ)為外部文件,當(dāng)用戶在服務(wù)器端鍵入關(guān)鍵字的時(shí)候,應(yīng)用服務(wù)器端會(huì)搜索關(guān)鍵字并將得到的搜索結(jié)果頁(yè)面進(jìn)行解析。按照特定的規(guī)則分析其中包含的網(wǎng)頁(yè)地址,經(jīng)過(guò)篩選和提取獲得我們所需要的商家的地址,將這些商家的地址一一保存在外部文件URL.txt中。對(duì)商家銷(xiāo)售量信息的獲取和存儲(chǔ)首先從外部文件URL.txt中獲取網(wǎng)頁(yè)地址,然后在應(yīng)用服務(wù)器端解析地址并獲得其內(nèi)容,服務(wù)器端會(huì)根據(jù)內(nèi)容生成DOM樹(shù),根據(jù)之前所給定的ID節(jié)點(diǎn)查找DOM樹(shù),找到ID之后提取其內(nèi)容并將提取出來(lái)的內(nèi)容保存如數(shù)據(jù)庫(kù)表taobao中。
3.系統(tǒng)實(shí)現(xiàn)
(1)商家地址的提取、存儲(chǔ)成文件、網(wǎng)頁(yè)內(nèi)容的獲取。
其中商家地址的提取使用了ItemDemo,Java,是一個(gè)實(shí)現(xiàn)獲取所有商家地址的類(lèi)。其中main方法是想parseListDocument方法傳人商品名參數(shù),和調(diào)用SaveUrlToFile類(lèi)中的writeLinesToFile方法來(lái)將得到的結(jié)果輸出成外部文件。parseListDocument方法是通過(guò)處理parseProductUrl返回的參數(shù)以此獲得所有商家地址。parseProductUrl方法是將getPmductListDocument方法中所獲得的所有地址進(jìn)行解析和分解并進(jìn)行組裝,獲得我們所需要的地址。