肖樂 叢天偉 嚴衛(wèi)
摘要:該設計使用python語言作為開發(fā)語言,主要采用了兩個框架:Scrapy和Django,用Scrapy來實現數據的采集技術,讓數據采集效率更高,錯誤率低等;用Django來實現web網頁展示數據可視化功能,使用戶能更加清晰、透明的了解到通過數據分析生活未來發(fā)展的趨勢,以及解決社會存在的某些問題等等。
關鍵詞:Python;大數據;Scrapy;Django
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)22-0009-03
Abstract: This design mainly adopts two frameworks: Scrapy and Django, using Django to achieve the web page display data visualization function, users can be more clear and transparent to the future through the development trend of life data analysis, and solve some social problems. Using Scrapy to achieve data acquisition technology, data acquisition efficiency is higher, error rate is low, the framework can also extend functions and expand protocols to meet more complex needs.
Key words: Python; Scrapy; Big data; Django
1 背景
隨著互聯網技術的不斷發(fā)展,我們所生活的世界正在被數據所淹沒,而這些數據經過精心的系統(tǒng)整合所形成大數據,開始展現出其從量變到質變的價值時代[1]。
采集是大數據價值挖掘最重要的一環(huán),其后的分析挖掘都建立在采集的基礎上。數據的采集有基于物聯網傳感器的采集,也有基于網絡信息的數據采集。比如在智能交通中,數據的采集有基于GPS的定位信息采集、基于交通攝像頭的視頻采集,基于交通卡口的圖像采集,基于路口的線圈信號采集等[2]。本文是研究互聯網上的數據采集,是對各類網絡媒介,如搜索引擎、新聞網站、論壇、微博、博客、電商網站等的各種頁面信息和用戶訪問信息進行采集,采集的內容主要有文本信息、URL、訪問日志、日期和圖片等。之后把采集到的各類數據進行清洗、過濾、去重等各項預處理并分類歸納存儲。對這些數據進行智能處理,從中分析和挖掘出有價值的信息[3]。
該設計基于python語言,運用scrapy框架進行對淘寶,京東等網站進行數據采集,達到更快速和高層次的屏幕抓取和web抓取數據,用NumPy進行數據的清理,過濾,子集構造,轉換,排序,描述統(tǒng)計等操作,通過matplotlib進行數據可視化分析。運用Django框架把數據圖表顯示在web頁面上[4]。
2 Web大數據采集技術
2.1 Scrapy爬蟲設計
在爬取數據之前首先要對網站進行分析,獲取初始的URL。獲取的方法可以通過抓包工具對要爬取的內容進行分析, 當找到數據地址后,對數據地址做分析,每獲取一個新的URL,先確定這個URL是否有效,把沒有用的數據去掉,爬取完后確定下一步的爬取URL,將新的URL放入爬取隊列中,如此循環(huán)下去,直到滿足設定的條件,結束爬取網絡數據,流程如圖1所示。
打開google,輸入www.taobao.com,抓包工具上會出現很多文件和json包還有圖片,找到想要的數據,在抓包工具里找到相應的json包以后就把這個json的地址copy出來,這樣就得到了想要的數據地址。
當找到數據地址后,要進行對數據地址做分析,把沒有用的數據去掉。
2.2 數據的清洗
抓取到數據后,由于數據里有許多“臟數據”,所以要對數據進行缺失值的處理和數據異常值的清洗處理。通過numpy的庫里的函數describe()來得出這堆數據里的極大值,平均值,中位值,極小值,方差等數據來分析數據里有哪些缺失值或者是異常值。
抓取到的原始數據,在數據清洗前價格與銷量的散點分布情況如圖3所示,橫坐標代表商品價格,縱坐標代表銷售量。發(fā)現商品價格0-500元之間有幾個商品的銷售量在60000-100000之間,分析得出這些商品存在異常;商品價格在1500-2000元之間有幾個商品的銷售量是0,可以肯定這是殘缺數據,一般情況是把中位數作為補給數據填補給缺少的數據,這樣可以讓數據能更加的合理化,關聯性更加的高。
將這些異常值進行數據清洗后得到圖4合理的價格與銷量分布散點分布可視化圖。
當把數據清洗完成后,還需要進行數據的轉換、規(guī)劃等操作,方便之后的數據分析。數據轉換和規(guī)劃后結果如圖5所示,圖中可以看出有五千多種商品分類,和某個時間段內,各種商品的銷售總數和銷售總產值。
3可視化數據分析
對于數據的可視化設計采用matplotlib工具,運用Django框架把數據圖表顯示在web頁面上。
3.1 不同價格區(qū)間商品的平均銷量分析
圖6分別對商品價格區(qū)間在0~13元,0~28元,0~49元等價格區(qū)間進行統(tǒng)計銷量,結果發(fā)現:價格區(qū)間在0~50元之間小零食商品的銷量都在3000~5000之間,差別不是很大,當價格超過50元,銷量開始明顯下降,分析得出消費者對于20~30元之間的小零食類商品最受喜愛。一方面是這個價格的商品符合大眾需求,另一方面這個價格滿足淘寶包郵策略所以銷售數量最多。電商可以在其他商品或者價格策略上得到相應的啟發(fā),改變銷售策略,獲得最大收益。
3.2 不同地區(qū)的同一商品銷量分析
圖7是在不同地區(qū)對同一商品的銷量統(tǒng)計,其中銷量排名前三的分別是安徽,河南,湖北,上海作為消費大都市,卻只排在了第七位,由此分析出對于零食的需求量主力軍并不在南方,而是在中部地區(qū)。但從商品分布圖8統(tǒng)計結果來看:上海浙江等地的商品數量排名靠前,而之前的安徽,河南等地區(qū)的商品數量確排名不高,所以接下來的銷售商考慮的策略應該是盡量減少在上海和浙江等地區(qū)的商品數量存貨,提高安徽,河南等地區(qū)的商品數量,達到市場供需平衡。
4 結束語
隨著大數據應用越來越廣泛,如何應用大數據更好地了解客戶以及他們的愛好和行為是大數據研究的關鍵領域。本文研究如何從互聯網上采集相關數據,讓數據采集更高效,把采集到的各類數據進行清洗、過濾、歸納存儲,將有用的數據進行統(tǒng)計和可視化分析,從中分析和挖掘出有價值的信息。
參考文獻:
[1] 周蘇, 王文. 大數據導論[M]. 北京: 清華大學出版社, 2016.
[2] 李聯寧. 大數據技術及應用教程[M]. 北京: 清華大學出版社, 2016.
[3] 王星. 大數據分析:方法與應用[M]. 2版. 北京: 清華大學出版社, 2013.
[4] Wesly McKinney. Python大數據分析基礎教程[M]. OReilly Media, 2013.
【通聯編輯:謝媛媛】