版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
目錄
1引言1
1.1項(xiàng)目背景1
1.2開(kāi)發(fā)環(huán)境與工具2
1.2.1Python簡(jiǎn)介2
1.2.2Pycharm簡(jiǎn)介2
1.2.3JupyterNotebook簡(jiǎn)介3
1.2.4Python第三方庫(kù)簡(jiǎn)介3
1.2.5谷歌瀏覽器簡(jiǎn)介4
2需求分析4
2.1可行性需求分析4
2.2采集目標(biāo)功能分析5
2.3關(guān)鍵技術(shù)分析6
2.3.1網(wǎng)絡(luò)爬蟲(chóng)技術(shù)6
2.3.2文件存取技術(shù)6
2.3.3可視化技術(shù)6
3數(shù)據(jù)采集7
3.1采集頁(yè)面分析7
3.2字段分析8
3.3編程實(shí)現(xiàn)8
4數(shù)據(jù)清洗與處理13
4.1數(shù)據(jù)清洗14
4.1.1原始數(shù)據(jù)格式14
4.1.2過(guò)程分析與代碼展示14
4.2數(shù)據(jù)儲(chǔ)存15
5數(shù)據(jù)統(tǒng)計(jì)與分析16
5.1數(shù)據(jù)準(zhǔn)備16
5.2數(shù)據(jù)展示17
I
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2.1統(tǒng)計(jì)店鋪出現(xiàn)次數(shù)排名top20的店鋪名稱17
5.2.2依據(jù)商品銷量進(jìn)行統(tǒng)計(jì)排名top20的商品名稱19
5.2.3依據(jù)價(jià)格與銷量數(shù)據(jù)分析其關(guān)系20
5.3數(shù)據(jù)分析22
6小結(jié)22
參考資料23
II
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
淘寶網(wǎng)家中常備藥品的商品數(shù)據(jù)采集與分析
1引言
從18世紀(jì)的蒸汽革命到19世紀(jì)的電氣革命再到20世紀(jì)的信息革命,隨著
時(shí)代的不斷進(jìn)步和社會(huì)的快速發(fā)展,互聯(lián)網(wǎng)已成為人們?nèi)粘I钪胁豢苫蛉钡?/p>
一部分。計(jì)算機(jī)互聯(lián)網(wǎng)技術(shù)在當(dāng)下為百姓民生的各個(gè)方面提供了智能生活的技
術(shù)基礎(chǔ),提高了人們的幸福感和滿足感,人們對(duì)互聯(lián)網(wǎng)行業(yè)的需求日益擴(kuò)大,
互聯(lián)網(wǎng)在方便人們生活的同時(shí),各行各業(yè)的人們也利用互聯(lián)網(wǎng)方便、快捷的特
點(diǎn),為企業(yè)或者個(gè)人在這個(gè)網(wǎng)絡(luò)大數(shù)據(jù)環(huán)境下創(chuàng)造出更高的利潤(rùn)價(jià)值。廣大人民
群眾的日常消費(fèi)、出行等產(chǎn)生的數(shù)據(jù)為技術(shù)工作者提供了海量的數(shù)據(jù)源頭,讓我
們?cè)谶@個(gè)行業(yè)領(lǐng)域內(nèi)不斷尋找新的資源,創(chuàng)造新的價(jià)值,推動(dòng)互聯(lián)網(wǎng)的不斷更
迭。淘寶網(wǎng)家中常備藥品商品數(shù)據(jù)采集與分析是一項(xiàng)對(duì)淘寶網(wǎng)上家庭健康領(lǐng)域
的商品數(shù)據(jù)進(jìn)行收集和處理的工作。通過(guò)該工作,可以獲得關(guān)于家庭用藥的商
品詳細(xì)信息(如銷售情況、價(jià)格等),并將這些信息整合起來(lái)以便進(jìn)一步分析,
最終得出有實(shí)際價(jià)值意義的結(jié)論。
1.1項(xiàng)目背景
現(xiàn)如今,即使我們已經(jīng)實(shí)現(xiàn)了全面脫貧和全面建成小康社會(huì)的目標(biāo),但以
人為本的核心未變,醫(yī)療行業(yè)仍是百姓以及國(guó)家關(guān)注的重點(diǎn),新冠肺炎從2019
年12月份到現(xiàn)如今一直影響著人們的日常生活,不僅威脅個(gè)人生命健康還對(duì)日
常工作出行等方面產(chǎn)生較大影響,國(guó)家不斷推行免費(fèi)核酸活動(dòng),公共基礎(chǔ)設(shè)施
建設(shè),宣揚(yáng)共同抗擊疫情等等工作,來(lái)盡量規(guī)避新冠對(duì)人們帶來(lái)的負(fù)面影響,
與此同時(shí),大數(shù)據(jù)技術(shù),互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展也為我們抗擊疫情做了很大的
貢獻(xiàn),如健康碼,行程碼都出自大數(shù)據(jù)技術(shù)。到了2022年下半年,病毒的攻擊
力相對(duì)減弱,國(guó)家決定實(shí)行一定程度的放寬政策,但隨之而來(lái)的是很多人都感
染新冠,因?yàn)閵W密克戎這類病毒的傳染能力比較強(qiáng),所以導(dǎo)致感染范圍廣,面
積大,很多家庭沒(méi)有備用抗病毒藥品的習(xí)慣,再加上藥店的儲(chǔ)備資源沒(méi)有那么
多,所以出現(xiàn)了購(gòu)藥難,購(gòu)藥貴的情況,很多年輕人靠自身強(qiáng)大的身體素質(zhì)抵
抗病毒,而老年人和小孩因?yàn)樽陨淼挚沽Σ蛔愣鴤涫苷勰?。到現(xiàn)如今,人們受
疫情的影響已經(jīng)逐漸減少,但疫情還沒(méi)有完全過(guò)去,也為了預(yù)防日后類似的流
感病毒出現(xiàn),為了更好地守護(hù)個(gè)人以及家人的健康,加強(qiáng)自身免疫力的同時(shí),
1
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
個(gè)人以及網(wǎng)店對(duì)各類日常所需藥品進(jìn)行預(yù)備是很有必要的。
我的項(xiàng)目就是針對(duì)人們?cè)诟腥拘鹿诟叱逼陂g大量購(gòu)買家中常備藥品的這一
現(xiàn)狀,爬取淘寶網(wǎng)站人們購(gòu)買各類日常必備藥品的數(shù)據(jù),對(duì)其進(jìn)行處理,分析,進(jìn)而
可視化。通過(guò)對(duì)繁雜的數(shù)據(jù)經(jīng)過(guò)清洗加分析可以得出人們購(gòu)買的最多的家中常
備藥品是哪些,每一類的藥品購(gòu)買數(shù)量有多少,以及哪些網(wǎng)店的家中常備藥品
月銷量最高,所以我的項(xiàng)目包含數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)分析與存儲(chǔ)以及數(shù)
據(jù)可視化部分。
1.2開(kāi)發(fā)環(huán)境與工具
由于這個(gè)項(xiàng)目涉及抗病毒藥品的數(shù)據(jù)采集,分析與統(tǒng)計(jì),存儲(chǔ),以及數(shù)據(jù)
可視化圖表呈現(xiàn),所以要用到的技術(shù)包括Python爬蟲(chóng)技術(shù),數(shù)據(jù)預(yù)處理技術(shù),
可視化技術(shù),所用到的開(kāi)發(fā)工具包括Pycharm、JupyterNotebook、第三方庫(kù)、瀏
覽器GoogleChrome。
1.2.1Python簡(jiǎn)介
python是一種高級(jí)編程語(yǔ)言,由荷蘭程序員guidovanrossum在1991年創(chuàng)
建。python語(yǔ)言具備簡(jiǎn)單、易讀、易維護(hù)的特點(diǎn),被廣泛應(yīng)用于數(shù)據(jù)科學(xué)、機(jī)
器學(xué)習(xí)、人工智能、web開(kāi)發(fā)等領(lǐng)域。與其他編程語(yǔ)言相比,python優(yōu)勢(shì)在于以
下幾點(diǎn):
1、程序簡(jiǎn)潔易讀:python程序結(jié)構(gòu)清晰,語(yǔ)法簡(jiǎn)單易懂,代碼量相對(duì)較少。
2、多態(tài)性:支持多種編程風(fēng)格和范式,包括面向過(guò)程、面向?qū)ο?、函?shù)式
編程等。
3、強(qiáng)大的標(biāo)準(zhǔn)庫(kù):python內(nèi)置了許多強(qiáng)大且易用的庫(kù),如numpy、pandas
和matplotlib等.
4、跨平臺(tái)性:python程序不需要經(jīng)過(guò)特別定制就可以運(yùn)行在Unix、Windows
和MacOS等操作系統(tǒng)上。
直至2022年7月份,根據(jù)TIOBE排行榜的顯示,Python依然占據(jù)第1名
的位置,并且市場(chǎng)份額仍在持續(xù)提升。
1.2.2Pycharm簡(jiǎn)介
pycharm是一款由Jetbrains開(kāi)發(fā)的python集成開(kāi)發(fā)環(huán)境(integrated
developmentenvironment,簡(jiǎn)稱IDE),它旨在提供全面的python開(kāi)發(fā)工具,為
編程人員提供更方便、高效的開(kāi)發(fā)體驗(yàn)。pycharm擁有豐富的編輯器功能,如語(yǔ)
2
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
法檢查、代碼補(bǔ)全、重構(gòu)、調(diào)試和測(cè)試等,能夠幫助開(kāi)發(fā)者編寫高質(zhì)量的python
代碼。同時(shí),pycharm還支持多種框架和庫(kù),比如django、flask等,提供完整的
開(kāi)發(fā)環(huán)境,方便開(kāi)發(fā)web應(yīng)用程序。pycharm跨平臺(tái)支持Windows、蘋果OSX
和Linux操作系統(tǒng),具有兩個(gè)版本,community版是免費(fèi)的,professional版需要
購(gòu)買并提供更強(qiáng)大的功能和工具。pycharm是一個(gè)優(yōu)秀的python開(kāi)發(fā)工具,可
大幅提高開(kāi)發(fā)速度和效率。
1.2.3JupyterNotebook簡(jiǎn)介
JupyterNotebook是一種基于web的交互式計(jì)算環(huán)境,它可以將可執(zhí)行代碼、
數(shù)學(xué)公式、圖像和文本等元素組合在一個(gè)文檔中,方便用戶進(jìn)行數(shù)據(jù)分析、機(jī)
器學(xué)習(xí)等任務(wù)。JupyterNotebook具有如下特點(diǎn):
1、語(yǔ)言支持廣泛:JupyterNotebook可以支持包括Python、R、Julia等在內(nèi)
的多種編程語(yǔ)言。
2、交互式計(jì)算:用戶可以通過(guò)修改代碼或輸入?yún)?shù)等方式與計(jì)算結(jié)果互動(dòng)。
3、可視化呈現(xiàn):JupyterNotebooks支持豐富的數(shù)據(jù)可視化功能,用戶可以
直接在notebook文檔中展示圖形、表格等信息。
4、易共享和復(fù)用:由于JupyterNotebook是一個(gè)文件,用戶可以輕松分享
自己的工作成果,別人可以快速了解到分析步驟并進(jìn)行修改。
5、強(qiáng)大的插件系統(tǒng):用戶可以通過(guò)插件系統(tǒng)提高notebook的使用效率,減
少重復(fù)性勞動(dòng)。
總之,JupyterNotebook是數(shù)據(jù)科學(xué)家和研究人員常用的工具之一,因?yàn)樗?/p>
能夠幫助他們更好地進(jìn)行實(shí)驗(yàn)和探索,并迅速地交流結(jié)果。
1.2.4Python第三方庫(kù)簡(jiǎn)介
requests:最友好的網(wǎng)絡(luò)爬蟲(chóng)功能庫(kù),是Python中可以用代碼來(lái)模擬發(fā)送網(wǎng)
絡(luò)請(qǐng)求,并得到響應(yīng)數(shù)據(jù)的一個(gè)第三方庫(kù),使用起來(lái)比urllib庫(kù)更簡(jiǎn)潔。
csv:csv屬于python中的內(nèi)置模塊,它能夠讀取csv格式的文件或者將數(shù)據(jù)
存入到csv表格中。并且csv文件是表格和數(shù)據(jù)庫(kù)中常見(jiàn)的文件操作格式。
random:random庫(kù)用于生成偽隨機(jī)數(shù),是一個(gè)標(biāo)準(zhǔn)庫(kù)。
time:time庫(kù)是python中處理時(shí)間的標(biāo)準(zhǔn)庫(kù),主要有計(jì)算機(jī)時(shí)間表達(dá)、獲
取系統(tǒng)時(shí)間并格式化、提供系統(tǒng)級(jí)精確計(jì)時(shí)等功能。
selenium:selenium庫(kù)是一個(gè)自動(dòng)化測(cè)試工具,利用它可以驅(qū)動(dòng)瀏覽器執(zhí)行
特定的動(dòng)作,如點(diǎn)擊、下拉等操作,同時(shí)還可以獲取瀏覽器當(dāng)前呈現(xiàn)的頁(yè)面的
3
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
源代碼,做到可見(jiàn)即可爬。同時(shí)使用selenium+cookies方式可以實(shí)現(xiàn)免密登錄來(lái)
爬取數(shù)據(jù)。
pandas:pandas庫(kù)是一個(gè)免費(fèi)開(kāi)源的第三方Python庫(kù),其基于numpy庫(kù)開(kāi)
發(fā)而來(lái),提供了兩種數(shù)據(jù)結(jié)構(gòu),Series與DataFrame,這兩種數(shù)據(jù)結(jié)構(gòu)極大地增
強(qiáng)的了Pandas的數(shù)據(jù)分析能力。
seaborn:seaborn庫(kù)是基于matplotlib的數(shù)據(jù)集分布可視化庫(kù)。它在
matplotlib的基礎(chǔ)上,進(jìn)行了更高級(jí)的封裝,從而使得繪圖更加容易,不需要經(jīng)過(guò)大
量的調(diào)整,就能使圖像變得精致。
matplotlib:繪圖庫(kù),主要是偏向于二維繪圖包括折線圖、條形圖、扇形圖、
散點(diǎn)圖、直方圖等等。
1.2.5谷歌瀏覽器簡(jiǎn)介
GoogleChrome是一款由Google公司開(kāi)發(fā)的網(wǎng)頁(yè)瀏覽器,該瀏覽器是一款
開(kāi)源軟件,目標(biāo)是提升穩(wěn)定性、速度和安全性,并創(chuàng)造出簡(jiǎn)單且有效率的使用
者界面。大部分人選擇使用谷歌瀏覽器爬蟲(chóng)有以下幾個(gè)原因:
1、內(nèi)核:國(guó)產(chǎn)的瀏覽器基本都是Chrome內(nèi)核,包括現(xiàn)在微軟的edge也開(kāi)
始用Chrome內(nèi)核。web前端測(cè)試或者解決bug用Chrome可以保證大多數(shù)人正
常使用。
2、插件:Chrome應(yīng)用商店,基本上想要的插件都能搜索到。程序員常常要
瀏覽國(guó)外的英文站點(diǎn),谷歌的翻譯插件真的很有幫助。
3、f12:Web無(wú)論是前后端開(kāi)發(fā)應(yīng)該都會(huì)用到Chrome開(kāi)發(fā)者工具,可以稱
之為神器,js下斷點(diǎn),查看后端響應(yīng)數(shù)據(jù)等等都很實(shí)用。除了開(kāi)發(fā),平常如果網(wǎng)
站有什么限制,比如不準(zhǔn)復(fù)制文字,不準(zhǔn)下載圖片,都可以用F12繞過(guò)。
2需求分析
2.1可行性需求分析
1、技術(shù)可行性
在淘寶網(wǎng)家庭常備藥品商品數(shù)據(jù)采集與分析項(xiàng)目中,技術(shù)可行性是非常重
要的。主要包含以下幾個(gè)方面:
數(shù)據(jù)采集:淘寶網(wǎng)作為一個(gè)大型電商平臺(tái),提供了多種數(shù)據(jù)獲取方式,包
括網(wǎng)頁(yè)抓取、API調(diào)用等。這里通過(guò)Python編程語(yǔ)言來(lái)編寫爬蟲(chóng)程序,利用HTTP
請(qǐng)求和解析HTML等技術(shù)獲取淘寶網(wǎng)上相關(guān)數(shù)據(jù),為了突破淘寶對(duì)爬蟲(chóng)的反爬
4
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
機(jī)制,采用一些技巧,如設(shè)置請(qǐng)求頭部信息、IP代理池等。
數(shù)據(jù)清洗:采集到的數(shù)據(jù)可能存在重復(fù)、錯(cuò)亂、格式異常等問(wèn)題,需要進(jìn)
行數(shù)據(jù)清洗和預(yù)處理。通過(guò)Jupyternotebook可以及時(shí)準(zhǔn)確地清洗數(shù)據(jù)。
數(shù)據(jù)存儲(chǔ):由于數(shù)據(jù)量較大,需要對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)和管理。選擇存儲(chǔ)為csv
文件既確保了數(shù)據(jù)的安全性又易于讀取應(yīng)用。
數(shù)據(jù)統(tǒng)計(jì)與分析:最后需要將分析結(jié)果以圖表形式呈現(xiàn)出來(lái),這里采用了
python中的多個(gè)可視化工具,使得代碼簡(jiǎn)潔清晰。
2、項(xiàng)目可行性
教育、住房、醫(yī)療一直是壓在人民心頭的三座大山,也是我們中國(guó)社會(huì)主義
發(fā)展道路上的巨大難題,不僅國(guó)家,百姓個(gè)人也尤為關(guān)注醫(yī)療方面。同時(shí)隨著
互聯(lián)網(wǎng)的發(fā)展,網(wǎng)上購(gòu)物的群眾數(shù)量逐年遞增,人們?cè)絹?lái)越熱衷于網(wǎng)上購(gòu)物,
此次疫情爆發(fā),受出行等因素限制,很多人都通過(guò)網(wǎng)上購(gòu)買藥品來(lái)抵抗疫情。
本設(shè)計(jì)通過(guò)采集大型購(gòu)物網(wǎng)站淘寶網(wǎng)網(wǎng)站內(nèi)的數(shù)據(jù),分析人們購(gòu)買日常必備
藥品的商品數(shù)據(jù)信息。采集出來(lái)的數(shù)據(jù)真實(shí)有效,進(jìn)行處理分析之后將其可視
化,可以清晰的知道人們認(rèn)可的購(gòu)買多的家中常備藥品的種類主要有哪些,以
及每一類的藥品銷量是多少,哪些網(wǎng)站的銷量最高以及網(wǎng)上藥店是否需要擴(kuò)大
儲(chǔ)備量來(lái)滿足人們的需求和擴(kuò)大自身利益。
2.2采集目標(biāo)功能分析
淘寶網(wǎng)是阿里巴巴集團(tuán)旗下的一個(gè)在線購(gòu)物平臺(tái),成立于2003年。它是中
國(guó)規(guī)模最大、用戶數(shù)量最多的在線零售平臺(tái)之一,提供各種類別的商品,如服
裝、鞋子、家居、食品等。根據(jù)2019年第三季度的數(shù)據(jù),淘寶網(wǎng)占據(jù)中國(guó)電商
市場(chǎng)約58%的份額,是中國(guó)最大的電子商務(wù)平臺(tái)之一。同時(shí),淘寶網(wǎng)也是全球
銷售量最高的電商平臺(tái)之一,與阿里巴巴集團(tuán)旗下的天貓共同主導(dǎo)了中國(guó)的電
商市場(chǎng)。截至目前,淘寶網(wǎng)的用戶規(guī)模已經(jīng)超過(guò)6億人,服務(wù)范圍涵蓋了全國(guó)
各個(gè)地區(qū)和行業(yè)。隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,淘寶網(wǎng)也逐漸從pc端向移動(dòng)端轉(zhuǎn)型,
目前移動(dòng)端訪問(wèn)量已經(jīng)超過(guò)了pc端訪問(wèn)量的一半。
總體來(lái)說(shuō),淘寶網(wǎng)在中國(guó)電商市場(chǎng)上的地位十分重要,具有非常大的影響
力和市場(chǎng)話語(yǔ)權(quán)。之所以選擇將淘寶作為數(shù)據(jù)采集的平臺(tái)是因?yàn)槠潺嫶蟮臄?shù)據(jù),
而對(duì)家中常備藥品進(jìn)行數(shù)據(jù)采集與分析是因?yàn)槿藗兊娜粘I铍x不開(kāi)這些藥制
品,選擇他可以真實(shí)的反映家中常備藥的商品種類和銷售數(shù)量以及銷量不同的
網(wǎng)店信息。
5
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
2.3關(guān)鍵技術(shù)分析
2.3.1網(wǎng)絡(luò)爬蟲(chóng)技術(shù)
網(wǎng)絡(luò)爬蟲(chóng)技術(shù)(webcrawling)是指使用計(jì)算機(jī)程序自動(dòng)地獲取互聯(lián)網(wǎng)上的
特定信息,例如網(wǎng)頁(yè)、圖片、視頻、音頻等資源。網(wǎng)絡(luò)爬蟲(chóng)開(kāi)發(fā)的語(yǔ)言有很多,
比如說(shuō)PHP、Go、C++、Java、Python等,不同的語(yǔ)言有不同的優(yōu)缺點(diǎn),而我選
擇用Python做為實(shí)現(xiàn)爬蟲(chóng)的語(yǔ)言,主要有以下因素:
首先相比其他動(dòng)態(tài)腳本語(yǔ)言,Python語(yǔ)言模塊豐富,提供了豐富的內(nèi)置模
塊、第三方模塊,以及成熟的網(wǎng)絡(luò)爬蟲(chóng)框架,能夠快速實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)的基本功
能,比如說(shuō)request庫(kù)以及selenium庫(kù)。
其次Python語(yǔ)法簡(jiǎn)潔,對(duì)于同一個(gè)功能,使用Python只需要編寫幾十行代
碼,而使用Java可能需要編寫幾百行代碼。另外開(kāi)發(fā)效率也非常高,相比較其
他語(yǔ)言而言我更熟悉python語(yǔ)言。
2.3.2文件存取技術(shù)
python中的文件存儲(chǔ)技術(shù)有很多種,如json,CSV,MySQL數(shù)據(jù)庫(kù),Redis
數(shù)據(jù)庫(kù),Mongdb數(shù)據(jù)庫(kù)等,其中各有各的優(yōu)點(diǎn)與缺點(diǎn),其中json格式和CSV
文件存儲(chǔ)操作簡(jiǎn)單方便,也是我在日常中用的最多的,故在此設(shè)計(jì)中我用json
格式和CSV文件存儲(chǔ)這種方式,同時(shí)他們也有各自的優(yōu)點(diǎn)。
1、使用json格式存儲(chǔ):它是一種可以對(duì)數(shù)據(jù)進(jìn)行交換的格式,對(duì)數(shù)據(jù)的表
示是使用的是獨(dú)立的編程語(yǔ)言,對(duì)數(shù)據(jù)的存儲(chǔ)是采用的文本格式,可以很好解
決Python2和Python3版本的編碼問(wèn)題,數(shù)據(jù)內(nèi)容的結(jié)構(gòu)上會(huì)有點(diǎn)像Python中
的字典和列表,層次清晰,可以方便閱讀和理解,同時(shí)還可以讓Python解釋器
對(duì)文件進(jìn)行解析和生成,有效的提高了開(kāi)發(fā)傳輸?shù)男省?/p>
2、csv文件:csv文件就像是我們平時(shí)使用的excel文件,如果將數(shù)據(jù)存儲(chǔ)
為csv文件的話,我們可以直接在系統(tǒng)磁盤中找到對(duì)應(yīng)的保存文件進(jìn)行瀏覽,方
便查看數(shù)據(jù)。
2.3.3可視化技術(shù)
數(shù)據(jù)可視化是一種將龐雜抽象的數(shù)據(jù)轉(zhuǎn)化為直觀易懂的圖形的數(shù)據(jù)呈現(xiàn)技
術(shù),它能幫助我們快速把握數(shù)據(jù)的分布和規(guī)律,更加輕松地理解和探索信息。
在當(dāng)今這個(gè)信息爆炸的時(shí)代,數(shù)據(jù)可視化越來(lái)越受重視。
本次項(xiàng)目中是將得到的數(shù)據(jù)用很簡(jiǎn)單的可視化手段實(shí)現(xiàn)數(shù)據(jù)可視化,具體
6
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
的就是用python第三方庫(kù)matpoltlab進(jìn)行可視化,matplotlab中包含了許多庫(kù),分
別對(duì)應(yīng)餅圖、條形圖、直方圖、折線圖等圖形,可以很好的將數(shù)據(jù)高效率的表現(xiàn)
出來(lái),可視化圖形呈現(xiàn)出來(lái)后對(duì)于結(jié)果自然一目了然,這樣既方便了他人觀看,
也方便自己對(duì)數(shù)據(jù)結(jié)果進(jìn)行分析得出結(jié)論。
3數(shù)據(jù)采集
3.1采集頁(yè)面分析
首先打開(kāi)谷歌瀏覽器,然后通過(guò)網(wǎng)址/搜索淘寶的官
方網(wǎng)頁(yè),其次在搜索欄輸入家中常備藥,可以看到家中常備藥的商品銷售信息,
如價(jià)格、銷量、藥品名稱等,我將爬取15頁(yè)的數(shù)據(jù)信息來(lái)進(jìn)行數(shù)據(jù)分析與展示,
如圖3-1所示。
圖3-1淘寶網(wǎng)搜索家中常備藥頁(yè)面
7
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
3.2字段分析
打開(kāi)家中常備藥品頁(yè)面之后發(fā)現(xiàn)每一件商品的信息包括商品價(jià)格,購(gòu)買人
數(shù),商品名稱,店鋪名稱等,打開(kāi)網(wǎng)頁(yè)源代碼也發(fā)現(xiàn)數(shù)據(jù)都在里面,這些數(shù)據(jù)
都是項(xiàng)目所需數(shù)據(jù),將爬取的也都是這些字段,如圖3-2所示。
圖3-2數(shù)據(jù)字段頁(yè)面
3.3編程實(shí)現(xiàn)
第一步:導(dǎo)入所需庫(kù)。
圖3-3導(dǎo)入庫(kù)頁(yè)面
第二步:定義函數(shù)items_data來(lái)爬取商品名字,商品價(jià)格,付款人數(shù)以及店
鋪名稱。
8
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-4定義函數(shù)items_data頁(yè)面
第三步:創(chuàng)建瀏覽器并進(jìn)入瀏覽器,使用selenium+cookies方式設(shè)置免密登
錄,再設(shè)置循環(huán)爬取15頁(yè)數(shù)據(jù)內(nèi)容。
圖3-5操作瀏覽器頁(yè)面
圖3-6設(shè)置免密登錄頁(yè)面
9
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-7循環(huán)爬取15頁(yè)數(shù)據(jù)頁(yè)面
第四步:存儲(chǔ)數(shù)據(jù),將存儲(chǔ)的文件格式轉(zhuǎn)換為CSV文件格式。
圖3-8存儲(chǔ)數(shù)據(jù)頁(yè)面
具體爬取數(shù)據(jù)代碼如下。
importcsv
importtime
importjson
importrandom
fromseleniumimportwebdriver
frommon.byimportBy
defitems_data():
divs=driver.find_elements(By.XPATH,'//div[@class="gridg-clearfix"]/div/div')#所有的div
標(biāo)簽
fordivindivs:
item_name=div.find_element(By.XPATH,'.//div[@class="rowrow-2title"]/a').text#
商品名字
price=div.find_element(By.XPATH,'.//strong').text+'元'#商品價(jià)格
deal=div.find_element(By.XPATH,'.//div[@class="deal-cnt"]').text#付款人數(shù)
name=div.find_element(By.XPATH,'.//div[@class="shop"]/a/span[2]').text#店鋪名
稱
#定義一個(gè)字典存儲(chǔ)數(shù)據(jù)
data_dic={}
data_dic["item_name"]=item_name
data_dic["price"]=price
data_dic["deal"]=deal
10
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
data_dic["name"]=name
data_list.append(data_dic)
if__name__=='__main__':
#1、創(chuàng)建瀏覽器
driver=webdriver.Chrome()
#2、操作瀏覽器
driver.get('/')
driver.implicitly_wait(5)#智能化等待方法
driver.maximize_window()#最大化
time.sleep(random.randint(1,5))#再等待幾秒之后進(jìn)行免密登錄
#3、免密登錄
driver.delete_all_cookies()
withopen('taobao_cookies.json','r',encoding='utf-8')asf:
cookies=json.load(f)
forcookieincookies:
driver.add_cookie(
{
"domain":".",
"name":cookie['name'],
"path":"/",
"value":cookie['value']
}
)
driver.get('/')
#4、輸入關(guān)鍵字進(jìn)行搜索
driver.find_element(By.XPATH,'//*[@id="q"]').send_keys('家中常備藥')
time.sleep(random.randint(1,5))
driver.find_element(By.XPATH,'//*[@id="J_TSearchForm"]/div[1]/button').click()#點(diǎn)擊搜
索
time.sleep(random.randint(1,5))
data_list=[]#定義一個(gè)空列表用來(lái)存儲(chǔ)所有的數(shù)據(jù)
#5、循環(huán)爬取15頁(yè)數(shù)據(jù)
forpageinrange(0,15):
items_data()#調(diào)用函數(shù)
#點(diǎn)擊下一頁(yè)
driver.find_element(By.XPATH,'//li[@class="itemnext"]/a[@class="J_Ajaxnum
icon-tag"]').click()
time.sleep(random.randint(2,5))
print(data_list)#打印出所有數(shù)據(jù)
#print(len(data_list))#打印出數(shù)據(jù)條數(shù)
#6、保存數(shù)據(jù)
withopen("taobao_data.json","w",encoding='utf-8')asf:
11
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
f.write(json.dumps(data_list,ensure_ascii=False,indent=4))
#7、將json格式的文件轉(zhuǎn)換為CSV格式的文件
withopen('taobao_data.csv','w',encoding='utf-8',newline='')asf2:
title=data_list[0].keys()
write=csv.DictWriter(f2,title)
write.writeheader()
write.writerows(data_list)
具體使用selenium+cookies方式設(shè)置免密登錄代碼如下。
#1.存儲(chǔ)cookies
fromseleniumimportwebdriver
fromselenium.webdriver.support.uiimportWebDriverWait
fromselenium.webdriver.supportimportexpected_conditionsasEC
frommon.byimportBy
importjson
driver=webdriver.Chrome()
driver.get('/')
wait=WebDriverWait(driver,15)
driver.maximize_window()
_login=wait.until(EC.presence_of_element_located(
(By.CSS_SELECTOR,'#J_SiteNavLogin>div.site-nav-menu-hd>div.site-nav-sign>a.h')))
_login.click()
_erweima=wait.until(EC.presence_of_element_located(
(By.CSS_SELECTOR,'#login>div.corner-icon-view.view-type-qrcode>i')))
_erweima.click()
wait.until(EC.presence_of_element_located(
(By.CSS_SELECTOR,'#J_SiteNavLogin>div.site-nav-menu-hd>div.site-nav-user>a')))
cookies=driver.get_cookies()
print(type(cookies))
print(cookies)
withopen('taobao_cookies.json','w',encoding='utf-8')asf:
json.dump(cookies,f,ensure_ascii=False,indent=4)
12
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖3-9存儲(chǔ)cookie代碼頁(yè)面
圖3-10存儲(chǔ)cookie代碼頁(yè)面
4數(shù)據(jù)清洗與處理
進(jìn)行完數(shù)據(jù)采集之后需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,也就是所謂的清洗和檢查。
確定爬取過(guò)來(lái)的數(shù)據(jù)是否存在無(wú)效值和缺失值,要保證數(shù)據(jù)的一致性,本次項(xiàng)
目中需將爬下來(lái)的數(shù)據(jù)和網(wǎng)頁(yè)原數(shù)據(jù)進(jìn)行比對(duì),并且檢查是否出現(xiàn)空值、錯(cuò)值,
無(wú)效的數(shù)據(jù),還有數(shù)據(jù)的位置是否正確。根據(jù)不同的需求要對(duì)數(shù)據(jù)進(jìn)行不同的
處理。
13
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
4.1數(shù)據(jù)清洗
4.1.1原始數(shù)據(jù)格式
圖4-1數(shù)據(jù)清洗準(zhǔn)備頁(yè)面
4.1.2過(guò)程分析與代碼展示
經(jīng)過(guò)比對(duì)和檢查,發(fā)現(xiàn)數(shù)據(jù)不存在缺失,錯(cuò)位,但是有空值和不需要的數(shù)
據(jù)條,例如藥品收納箱的數(shù)據(jù),還有一些無(wú)效字段,例如字段“+人付款”,
“元”等,那么我根據(jù)需求將有效數(shù)據(jù)統(tǒng)一規(guī)劃,去掉不需要的行列數(shù)據(jù),只
需保留需要的數(shù)據(jù),具體步驟如下。
第一步:讀取csv文件,代碼如下。
importpandasaspd
file=open(r'C:\Users\Administrator\Desktop\taobao_data.csv',encoding='utf-8')
df=pd.read_csv(file)
df2=pd.DataFrame(df)
df2
第二步:刪除字段“元”以及“+人付款”,代碼如下。
df2['price']=df2['price'].apply(lambdax:x[:-1])
df2
df2['deal']=df2['deal'].str.replace('[+]','',regex=True)
df2
df2['deal']=df2['deal'].str.replace('人付款','')
14
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
df2
第三步:將‘萬(wàn)’改為‘0000’,刪除含“收納箱”的無(wú)用數(shù)據(jù)條,代碼
如下。
df2['deal']=df2['deal'].str.replace('萬(wàn)','0000')
df2
df3=df2.drop(df2[df2['item_name'].str.contains(pat='收納',regex=False)].index,inplace=True)#刪
除含有“收納”二字的行
df3
df4=df2.drop(df2[df2['item_name'].str.contains(pat='箱',regex=False)].index,inplace=True)#刪除
含有“箱”二字的行
df4
第四步:刪除空值,重置索引,代碼如下。
df2=df2.dropna()
df2
df2=df2.reset_index(drop=True)
df2
最終數(shù)據(jù)清洗的結(jié)果如下。
圖4-2數(shù)據(jù)清洗完成界面
4.2數(shù)據(jù)儲(chǔ)存
數(shù)據(jù)儲(chǔ)存得方法有很多種,本項(xiàng)目我用到的是to_csv方法,文件名為
result.csv,如圖4-3所示:
15
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖4-3數(shù)據(jù)存儲(chǔ)為csv頁(yè)面
部分結(jié)果如圖所示。
圖4-4csv文件數(shù)據(jù)展示頁(yè)面
5數(shù)據(jù)統(tǒng)計(jì)與分析
5.1數(shù)據(jù)準(zhǔn)備
導(dǎo)入pandas庫(kù),導(dǎo)入相關(guān)matplotlib第三方庫(kù)等,設(shè)置字體類型,使用pandas
加載源數(shù)據(jù),如圖5-1所示。
16
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖5-1導(dǎo)入數(shù)據(jù)代碼頁(yè)面
圖5-2數(shù)據(jù)準(zhǔn)備頁(yè)面
5.2數(shù)據(jù)展示
5.2.1統(tǒng)計(jì)店鋪出現(xiàn)次數(shù)排名top20的店鋪名稱
圖5-3代碼頁(yè)面
17
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖5-4數(shù)據(jù)展示頁(yè)面
將在csv文件中店鋪名稱(name)字段的數(shù)據(jù)進(jìn)行降序排序,然后取出排名前
20的網(wǎng)店名稱數(shù)據(jù)生成條形圖,如圖5-4中可以看出阿里健康大藥房在過(guò)去一個(gè)
月內(nèi)出現(xiàn)的頻率最高,其次就是瑞康大藥房旗艦店和優(yōu)德大藥房旗艦店。談到網(wǎng)
上購(gòu)藥一般人們的第一選擇就是去阿里健康大藥房旗艦店購(gòu)買,可能因?yàn)樵撈?/p>
艦店的家中常備藥品齊全,而且價(jià)格實(shí)惠,售后服務(wù)好,值得信賴,畢竟用藥
直接關(guān)系個(gè)人生命健康,大家還是比較小心和在意。但依此數(shù)據(jù),我們也可以
得知,瑞康大藥房旗艦店和優(yōu)德大藥房旗艦店也是不錯(cuò)的選擇,特別是在此次
疫情中購(gòu)藥難的情況下,阿里健康大藥房也會(huì)存在供不應(yīng)求的狀況,此外,這
兩個(gè)旗艦店在淘寶網(wǎng)站上的家中常備藥網(wǎng)頁(yè)中出現(xiàn)多次,說(shuō)明它們旗艦店的質(zhì)
量,口碑也是值得大家去信賴的。同時(shí),排名最高的阿里健康大藥房以及阿里
健康醫(yī)藥旗艦店一共達(dá)到了34次,也就是說(shuō)人們購(gòu)買的大部分的藥品都來(lái)自阿
里健康大藥房。
所以依此圖來(lái)看,人們對(duì)用阿里健康大藥房旗艦店的依賴性還是比較高的,
所以人們一定要對(duì)日常用藥進(jìn)行儲(chǔ)備,相應(yīng)的企業(yè)也要根據(jù)實(shí)時(shí)數(shù)據(jù),備好一
18
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
定的藥品庫(kù)存量。
5.2.2依據(jù)商品銷量進(jìn)行統(tǒng)計(jì)排名top20的商品名稱
圖5-5代碼頁(yè)面
圖5-6數(shù)據(jù)展示頁(yè)面
將在csv文件中銷量(deal)字段的數(shù)據(jù)進(jìn)行降序排序,然后取出排名前20的
19
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
商品名稱數(shù)據(jù)生成條形圖,如圖5-5中可以看出益生菌粉,康恩貝腸炎寧片,云
南白藥創(chuàng)口貼,葵花退熱貼以及布洛芬適緩膠囊等商品在過(guò)去一個(gè)月內(nèi)的銷量
都比較高,總的來(lái)看,主要有維生素類藥品,治療皮膚類的藥品,治療跌打損傷
類的藥品,治療腸炎調(diào)理腸胃類的藥品,以及治療清熱上火感冒退燒類的藥品
等。這些僅僅是所有數(shù)據(jù)中銷量排名前20的商品,排名在后面商品銷量都不是
很高,足以說(shuō)明人們?nèi)粘I钪袑?duì)這幾類的藥品需求量還是比較高的,大部分
人日常生活中也是用的到的,而不會(huì)說(shuō)存在閑置的情況。
所以,人們可以根據(jù)這種現(xiàn)狀多備用一些類似的藥品,從個(gè)人來(lái)說(shuō)面臨疾
病時(shí)可以及時(shí)用藥抵抗病毒擴(kuò)展,從國(guó)家來(lái)說(shuō)面對(duì)重大傳染病時(shí)可以減少供給
壓力與人口死亡率。
5.2.3依據(jù)價(jià)格與銷量數(shù)據(jù)分析其關(guān)系
圖5-7代碼頁(yè)面
20
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖5-8數(shù)據(jù)展示頁(yè)面
根據(jù)銷量(deal)和價(jià)格字段生成它們之間關(guān)系的雙變量關(guān)系圖,如圖5-8,從
圖中可以看出價(jià)格在0元-60元左右銷量是最高的,這說(shuō)明,對(duì)于大部分人來(lái)說(shuō),
家中常備藥的藥品價(jià)格在這區(qū)間內(nèi)是合理且能夠被接受的,而價(jià)格在150-400區(qū)
間內(nèi)幾乎沒(méi)有人愿意購(gòu)買,因此如果家中常備藥品的價(jià)格過(guò)高,則購(gòu)買人數(shù)就
會(huì)與之成反比關(guān)系,即使人們看
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度牧業(yè)產(chǎn)業(yè)扶貧項(xiàng)目承包合同范本3篇
- 2025版農(nóng)產(chǎn)品溯源與質(zhì)量認(rèn)證服務(wù)合同3篇
- 遼寧省朝陽(yáng)市北票市2024-2025學(xué)年七年級(jí)上學(xué)期1月期末道德與法治試題(含答案)
- 2025年度個(gè)人公司股權(quán)結(jié)構(gòu)調(diào)整合同4篇
- 二零二五年度某局勞務(wù)分包結(jié)算與數(shù)字化轉(zhuǎn)型戰(zhàn)略合同2篇
- 天然氣在科技創(chuàng)新中的地位考核試卷
- 家禽飼養(yǎng)業(yè)質(zhì)量品牌提升與市場(chǎng)競(jìng)爭(zhēng)策略考核試卷
- 供應(yīng)鏈協(xié)同采購(gòu)與供應(yīng)商管理考核試卷
- 儀器儀表制造業(yè)的持續(xù)創(chuàng)新能力考核試卷
- 2025版二零二五年度美發(fā)店房東租賃合同范本:租賃合作協(xié)議4篇
- 中醫(yī)診療方案腎病科
- 2025年安慶港華燃?xì)庀薰菊衅腹ぷ魅藛T14人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 人教版(2025新版)七年級(jí)下冊(cè)數(shù)學(xué)第七章 相交線與平行線 單元測(cè)試卷(含答案)
- GB/T 44351-2024退化林修復(fù)技術(shù)規(guī)程
- 從跨文化交際的角度解析中西方酒文化(合集5篇)xiexiebang.com
- 中藥飲片培訓(xùn)課件
- 醫(yī)院護(hù)理培訓(xùn)課件:《早產(chǎn)兒姿勢(shì)管理與擺位》
- 《論文的寫作技巧》課件
- 空氣自動(dòng)站儀器運(yùn)營(yíng)維護(hù)項(xiàng)目操作說(shuō)明以及簡(jiǎn)單故障處理
- 2022年12月Python-一級(jí)等級(jí)考試真題(附答案-解析)
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識(shí)
評(píng)論
0/150
提交評(píng)論